大資料求索(4):Hive安裝和使用
Hive安裝和使用
Hive環境搭建
-
Hive下載
wget https://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz
-
解壓
tar -zxvf hive-1.1.00cdh5.7.0.tar.gz -C ~/APP/Hadoop
-
環境配置
系統環境變數配置(vim ~/.bash_profile)
export HIVE_HOME=/home/hadoop/APP/Hadoop/hive-1.1.0-cdh5.7.0
export PATH=$HIVE_HOME/bin:$PATH
-
檔案配置
因為資料存放在關係型資料庫裡,所以需要安裝一個mysql
修改$HADOOP_HOME目錄
hive-site.xml
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/sparksql?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name
-
拷貝mysql驅動到$HIVE_HOME/lib
這個可以到maven倉庫去下載下來拷貝過去即可
-
啟動hive
$HIME_HOME/bin/hive$bin/hive (需先啟動叢集)
啟動以後,進入hive shell
可以去檢視mysql資料庫,發現裡面已經多了剛才配置檔案裡面寫的sparksql資料庫,show tables可以發現多了很多表,這些表是hive啟動幫助建立的
Hive 使用
-
建立表
create table hive_wordcount(context string); show tables;
可以發現多了一張表
切換到mysql資料庫裡面,查看錶TBLS(原本是空的),
select * from TBLS;
可以發現多了一行資料,包括ID、建立時間、擁有者、表名等資訊
查看錶COLUMNS_V2,可以看到欄位資訊
select * from COLUMNS_V2;
-
載入資料到hive表
可以從本地或者HDFS載入
load data local(如果從HDFS去掉local) inpath '/home/hadoop/data/data.txt' into table hive_wordcount; select * from hive_wordcount;
可以看到資料已經載入到表裡了。
-
hive進行詞頻統計
這裡需要用到一個函式 :
load view explode(): 把每行記錄按照指定分隔符進行拆解
select word, count(1) from hive_wordcount lateral view explode(split(context, ' ')) wc as word group by word;
可以看到結果如下:
如果我們這時候去重新整理yarn的web介面,可以看到hive提交了mr job到平臺去執行,相當於幫助我們把sql語句轉換成了mr任務,並在yarn執行
但是hive更加簡單,只要會使用sql即可