Hive概述
Hive產(chǎn)生背景
HDFS上的文件并沒有Schema的概念
Hive是什么
由FaceBook開源,用于解決海量結(jié)構(gòu)化日志的數(shù)據(jù)統(tǒng)計(jì)問題。
構(gòu)建在Hadoop之上的數(shù)據(jù)倉(cāng)庫(kù)。
Hive提供的SQL查詢語言:HQL
底層支持多種不同的執(zhí)行引擎:MR/Tez/Spark
為什么要使用Hive
容易、簡(jiǎn)單上手
為超大數(shù)據(jù)集設(shè)計(jì)的計(jì)算/擴(kuò)展能力
統(tǒng)一的元數(shù)據(jù)管理:Hive數(shù)據(jù)存放在HDFS中,元數(shù)據(jù)是記錄數(shù)據(jù)的數(shù)據(jù)。
Hive架構(gòu)
Hive與RDBMS的區(qū)別
雖然HiveSQL 與SQL非常類似,但是他們有本質(zhì)區(qū)別的。雖然他們長(zhǎng)得非常相似,但是他們之間沒有任何關(guān)系
Hive部署
修改配置文件hive-env.sh,內(nèi)容如下:HADOOP_HOME=/home/iie4bu/app/hadoop-2.6.0-cdh5.15.1
修改配置文件hive-site.xml,內(nèi)容如下:
在jdbc:mysql://swarm-manager:3306/hadoop_hive?createDatabaseIfNotExist=true表示會(huì)生成一個(gè)hadoop_hive庫(kù)
5. 將mysql-connector-java-5.1.35.jar拷貝到hive-1.1.0-cdh5.15.1/lib路徑下。
6. 前提是要安裝一個(gè)數(shù)據(jù)庫(kù)。
7. 啟動(dòng)hive:在hive-1.1.0-cdh5.15.1/bin下執(zhí)行hive
創(chuàng)建數(shù)據(jù)庫(kù)
在hive中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),在mysql中查看數(shù)據(jù)庫(kù):
可以看到生成了一個(gè)新的mysql數(shù)據(jù)庫(kù)hadoop_hive:
查看其中的DBS表:
其中第一條數(shù)據(jù)是默認(rèn)的一條數(shù)據(jù),第二條是我們創(chuàng)建的一條。
查看HDFS中的內(nèi)容:
創(chuàng)建數(shù)據(jù)表
hive> create table helloworld(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
導(dǎo)入數(shù)據(jù)
創(chuàng)建數(shù)據(jù)文件:
1 zhangsan 2 lisi 3 wangwu
查看導(dǎo)入的數(shù)據(jù):
執(zhí)行MapReduce
統(tǒng)計(jì)一下這個(gè)helloworld表的數(shù)據(jù):
可以看到開始執(zhí)行一個(gè)MapReduce,在YARN中查看,有一個(gè)正在運(yùn)行的MR:
MapReduce運(yùn)行成功之后:
因此可以直接通過SQL執(zhí)行MAPREDUCE。
總結(jié)
- 上一篇: 创建vue-cli项目
- 下一篇: Hive DDL操作