小編給大家分享一下Hive如何安裝,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供南鄭網(wǎng)站建設(shè)、南鄭做網(wǎng)站、南鄭網(wǎng)站設(shè)計、南鄭網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、南鄭企業(yè)網(wǎng)站模板建站服務(wù),10年南鄭做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
1)Hive官網(wǎng)地址 http://hive.apache.org/
2)文檔查看地址 https://cwiki.apache.org/confluence/display/Hive/GettingStarted
3)下載地址 http://archive.apache.org/dist/hive/
4)github地址 https://github.com/apache/hive
#rpm -qa查詢 | -ivh安裝 | -e --nodeps卸載(不檢查依賴) rpm -qa|grep mariadb --> mariadb-libs-5.5.56-2.el7.x86_64 --如果存在通過如下命令卸載 sudo rpm -e --nodeps mariadb-libs
#必須按照如下順序依次安裝 #MySQl運行環(huán)境 sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm #MySQL運行jar包 sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm #MySQL擴展jar包 sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm #MySQL客戶端 sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm #MySQL服務(wù)器 sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
#查看datadir路徑 cat /etc/my.cnf --> datadir=/var/lib/mysql #清空路徑目錄下內(nèi)容 sudo rm -rf /var/lib/mysql
sudo mysqld --initialize --user=mysql
#啟動mysql服務(wù) sudo systemctl start mysqld sudo systemctl status mysqld #查看臨時密碼 sudo cat /var/log/mysqld.log #登錄數(shù)據(jù)庫 mysql -uroot -p(換行中輸入臨時密碼) #更改密碼策略 set global validate_password_length=4; set global validate_password_policy=0; #修改登錄密碼 set password = password('123456') #修改mysql庫下的user表中的root用戶允許任意ip連接 updata mysql.user set host="%" where user="root" #刷新數(shù)據(jù)庫 flush privileges
1)把apache-hive-3.1.2-bin.tar.gz上傳到linux的/opt/software目錄下 2)解壓apache-hive-3.1.2-bin.tar.gz到/opt/module/目錄下面 --tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/ 3)修改apache-hive-3.1.2-bin.tar.gz的名稱為hive --mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive 4)修改/etc/profile.d/my_env.sh,添加環(huán)境變量 --sudo vim /etc/profile.d/my_env.sh 5)添加內(nèi)容 #HIVE_HOME export HIVE_HOME=/opt/module/hive export PATH=$PATH:$HIVE_HOME/bin 6)解決日志Jar包沖突 --mv $HIVE_HOME/lib/log4j2-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j2-slf4j-impl-2.10.0.bak
#1.將MySQL的JDBC驅(qū)動放置在Hive的lib目錄下 cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib #2.配置Metastore到MySQL vim /opt/module/hive/conf/hive-site.xml
javax.jdo.option.ConnectionURL jdbc:mysql://hadoop102:3306/metastore?useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 hive.metastore.warehouse.dir /user/hive/warehouse hive.server2.thrift.port 10000 hive.server2.thrift.bind.host hadoop102 hive.metastore.uris thrift://hadoop102:9083 hive.metastore.event.db.notification.api.auth false hive.metastore.schema.verification false hive.server2.active.passive.ha.enable true
#登錄MySQL 創(chuàng)建元數(shù)據(jù)庫 create database metastore #退出MySQL 初始化元數(shù)據(jù) schematool -initSchema -dbType mysql -verbose
#啟動元數(shù)據(jù)服務(wù)(前臺服務(wù),連接mysql獲取元數(shù)據(jù)) hive --service metastore #啟動hiveserver2服務(wù)(前臺服務(wù),jdbc連接服務(wù)) hive --service hiveserver2 #——0 標準輸入 ——1 標準輸出 ——2 錯誤輸出 -->& 將一個句柄的輸出寫入到另一個句柄的輸入中。 #——nohup: 命令開頭,表示不掛起,也就是關(guān)閉終端進程也繼續(xù)保持運行狀態(tài) ——&: 命令結(jié)尾,表示后臺運行 nohup hive --service metastore>log.txt 2>&1 & nohup hive --service hiveserver2>log2.txt 2>&1 &
#!/bin/bash HIVE_LOG_DIR=$HIVE_HOME/logs if [ ! -d $HIVE_LOG_DIR ] then mkdir -p $HIVE_LOG_DIR fi #檢查進程是否運行正常,參數(shù)1為進程名,參數(shù)2為進程端口 function check_process() { pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}') ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1) echo $pid [[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1 } function hive_start() { metapid=$(check_process HiveMetastore 9083) cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &" cmd=$cmd" sleep 4; hdfs dfsadmin -safemode wait >/dev/null 2>&1" [ -z "$metapid" ] && eval $cmd || echo "Metastroe服務(wù)已啟動" server2pid=$(check_process HiveServer2 10000) cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &" [ -z "$server2pid" ] && eval $cmd || echo "HiveServer2服務(wù)已啟動" } function hive_stop() { metapid=$(check_process HiveMetastore 9083) [ "$metapid" ] && kill $metapid || echo "Metastore服務(wù)未啟動" server2pid=$(check_process HiveServer2 10000) [ "$server2pid" ] && kill $server2pid || echo "HiveServer2服務(wù)未啟動" } case $1 in "start") hive_start ;; "stop") hive_stop ;; "restart") hive_stop sleep 2 hive_start ;; "status") check_process HiveMetastore 9083 >/dev/null && echo "Metastore服務(wù)運行正常" || echo "Metastore服務(wù)運行異常" check_process HiveServer2 10000 >/dev/null && echo "HiveServer2服務(wù)運行正常" || echo "HiveServer2服務(wù)運行異常" ;; *) echo Invalid Args! echo 'Usage: '$(basename $0)' start|stop|restart|status' ;; esac
#1.Hive啟動 bin/hive #打印當前庫與表頭需配置hive-site.xmlhive.cli.print.header true Whether to print the names of the columns in query output. #2.JDBC啟動 beeline -u jdbc:hive2://hadoop102:10000 -n luck hive.cli.print.current.db true Whether to include the current database in the Hive prompt.
#查看所有命令 bin/hive -help #1. hive -e 不進入hive窗口執(zhí)行sql語句 bin/hive -e "select id from student;" #2. hive -f 執(zhí)行腳本中的sql語句 echo "select * from student" >> sql.txt bin/hive -f /opt/module/hive/datas/sql.txt > /opt/module/datas/hive_result.txt #3.hive中查看hdfs文件系統(tǒng) hive > dfs -ls #4.hive輸入歷史 /home/luck/. hivehistory /home/luck/.beeline/history
#1.hive日志存儲位置 #修改hive-log4j.properties.template為hive-log4j.properties property.hive.log.dir=/opt/module/hive/logs #2.JVM堆內(nèi)存設(shè)置 #修改hive-env.sh.template為hive-env.sh export HADOOP_HEAPSIZE=1024 #3.參數(shù)配置的優(yōu)先級 #3.1 配置文件(永久) #Hadoop配置文件-->默認配置文件:hive-default.xml-->用戶自定義配置文件:hive-site.xml #3.2 命令行參數(shù)(hive啟動前,僅對本次hive有效) beeline -u jdbc:hive2://hadoop102:10000 -n luck -hiveconf mapreduce.job.reduces=10; #3.3 參數(shù)聲明(hive啟動后,僅對本次hive有效) hive (default)> set mapreduce.job.reduces=10; #優(yōu)先級:參數(shù)聲明>命令行參數(shù)>配置文件
以上是“Hive如何安裝”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!