您好,登錄后才能下訂單哦!
安裝前說明:
安裝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
圖2
圖3
三)安裝
3.1 解壓到特定目錄,這里解壓到/usr/local目錄(用戶自行安裝軟件,建議放在/usr/local目錄)
# tar -zxvf apache-hive-3.1.0-bin.tar.gz -C /usr/local
3.2 設置環境變量,編輯/etc/profile添加以下紅框內的內容:
設置后運行 # 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值,如下:
3.4.2.2 修改name標簽為hive.exec.scratchdir的value值,如下:
3.4.2.3 將hive-site.xml文件中所有value標簽中的值中的"${system:java.io.tmpdir}"替換為"/var/hive/tmp",如下例子:
3.4.2.4 將hive-site.xml文件中所有value標簽中的值中的"${system:user.name}"替換為"root",如下例子:
3.4.2.5 Hive元數據庫配置,這里以mysql為例
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文件,并添加如下內容:
四)啟動和測試
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 。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。