Centos基於Hadoop安裝Hive

安裝前說明:

安裝hive前提是要先安裝hadoop集羣,並且hive只需要在hadoop的namenode節點集羣裏安裝即可(需要再所有namenode上安裝),而不需要在datanode節點的機器上安裝。另外還需要說明的是,雖然修改配置文件並不需要你已經把hadoop跑起來,但是本文中用到了hadoop命令(創建文件夾時使用過),在執行這些命令前你必須確保hadoop是在正常跑着的,而且啓動hive的前提也是需要hadoop在正常跑着,所以建議你先將hadoop跑起來在按照本文操作。


前提:

本文假使你已成功安裝Hadoop!如未安裝,請參考另一篇博文《centos下安裝分佈式Hadoop 3.1.1》

本文假使你已成功安裝配置MySql數據,如未安裝,請參考另一篇博文《MySQL數據庫安裝及配置相關》


一)安裝環境

Centos 7.5

JDK 1.8.0_181

Hadoop 3.1.1

Hive 3.1.0


二)下載HIVE

下載地址:http://www.apache.org/dyn/closer.cgi/hive/ 

打開網址,點擊圖1中鏈接,然後選擇Hive 版本,比如這裏選擇Hive 3.1.0(如圖2),然後下載打好包的軟件即可(如圖3):

1.png

圖1

2.png

圖2

3.png

圖3

三)安裝

3.1 解壓到特定目錄,這裏解壓到/usr/local目錄(用戶自行安裝軟件,建議放在/usr/local目錄)

# tar -zxvf apache-hive-3.1.0-bin.tar.gz -C /usr/local


3.2 設置環境變量,編輯/etc/profile添加以下紅框內的內容:

environment.png

設置後運行 # source /etc/profile使修改生效。


3.3 新建3個目錄,以便配置hive-site.xml文件

進入Hadoop的bin目錄,運行以下命令:

# ./hadoop fs -mkdir -p /var/hive/warehouse

# ./hadoop fs -mkdir -p /var/hive/tmp

# ./hadoop fs -mkdir -p /tmp/hive

修改3個目錄的權限:

./hadoop fs -chmod 777 /var/hive/warehouse

./hadoop fs -chmod 777 /var/hive/tmp

./hadoop fs -chmod 777 /tmp/hive

創建後,可運行# ./hadoop fs -ls /var/hive/命令進行查看是否創建成功。


3.4 編輯hive-site.xml文件

3.4.1 新建hive-site.xml文件

進入到/usr/local/apache-hive-3.1.0.bin/conf目錄,將hive-default.xml.template文件複製一份,並命名爲hive-site.xml.

3.4.2 修改hive-site.xml文件

3.4.2.1 修改name標籤爲hive.metastore.warehouse.dir的value值,如下:

warehouse.png

3.4.2.2 修改name標籤爲hive.exec.scratchdir的value值,如下:

scratch.png

3.4.2.3 將hive-site.xml文件中所有value標籤中的值中的"${system:java.io.tmpdir}"替換爲"/var/hive/tmp",如下例子:

systemio.png

3.4.2.4 將hive-site.xml文件中所有value標籤中的值中的"${system:user.name}"替換爲"root",如下例子:

systemname.png

3.4.2.5 Hive元數據庫配置,這裏以mysql爲例

mysqlURL.png

mysqldriver.png

mysqlUser.png

mysqlPassword.png

schema.png

3.4.2.6 將MySql驅動包傳到hive的lib目錄

MySql驅動包下載地址:https://dev.mysql.com/downloads/connector/j/ 

注意驅動與版本的對於關係,可參考網址:

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html 

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html 

3.4.2.7 新建hive-env.sh文件並編輯

進入hive的conf目錄,將hive-env.sh.template文件複製爲hive-env.sh文件,並添加如下內容:

hive-env.png

四)啓動和測試

4.1 啓動

進入hive的bin目錄,執行命令:

# ./schematool -initSchema -dbType mysql            //run this command to initialize DB.

# ./hive

4.2 測試

可執行以下命令進行測試:

# show functions;        //查看支持的函數

# create database DBName;        //創建數據庫

# use DBName;        //選中某個庫

# create table TableName(id int, name string) row format delimited fields terminated by '\t';            //創建包含id及name列的表,且字段之間用Tab鍵分割

# load data local inpath 'File' into table DBName.TableName;        //將文件File中的數據加載到創建的表中

文件的數據如下:

001 zhangsan
002 lisi
003 wangwu
004 zhaoliu
005 chenqi

說明:ID和name直接是TAB鍵,不是空格,因爲在上面創建表的語句中用了terminated  by  '\t'所以這個文本里id和name的分割必須是用TAB鍵(複製粘貼如果有問題,手動敲TAB鍵吧),還有就是行與行之間不能有空行,否則下面執行load,會把NULL存入表內,該文件要使用unix格式,如果是在windows上用txt文本編輯器編輯後在上載到服務器上,需要用工具將windows格式轉爲unix格式,例如可以使用Notepad++來轉換。

# select * from TableName;            //在hive命令行窗口運行以查看錶中數據

最後,還可以在mysql中查看創建的DB和Table,分別位於DBS表和TBLS表;

也可以通過namenode的URL在瀏覽器端查看數據:http://NameNodeIP:50070/explorer.html#/var/hive/warehouse/DBName.db        //修改namenode的IP及自己配置的warehouse路徑和創建的數據庫名。


Appendix:

安裝HIVE還可以參考網址:https://blog.csdn.net/pucao_cug/article/details/71773665 。

快速瞭解HIVE核心基本概念,參考網址:https://blog.csdn.net/freefish_yzx/article/details/77150248 。

快速上手使用HIVE數據倉庫,參考網址: https://www.yiibai.com/hive/hive_partitioning.html 。

關於HIVE的分區概念及使用,參考網址: https://blog.csdn.net/qq_36743482/article/details/78418343 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章