您好,登錄后才能下訂單哦!
小編給大家分享一下Hive如何安裝,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1)Hive官網地址 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運行環境 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服務器 sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
#查看datadir路徑 cat /etc/my.cnf --> datadir=/var/lib/mysql #清空路徑目錄下內容 sudo rm -rf /var/lib/mysql
sudo mysqld --initialize --user=mysql
#啟動mysql服務 sudo systemctl start mysqld sudo systemctl status mysqld #查看臨時密碼 sudo cat /var/log/mysqld.log #登錄數據庫 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" #刷新數據庫 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,添加環境變量 --sudo vim /etc/profile.d/my_env.sh 5)添加內容 #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驅動放置在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
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- jdbc連接的URL --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value> </property> <!-- jdbc連接的Driver--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- jdbc連接的username--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!-- jdbc連接的password --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <!-- Hive默認在HDFS的工作目錄 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <!-- 指定hiveserver2連接的端口號 --> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <!-- 指定hiveserver2連接的host --> <property> <name>hive.server2.thrift.bind.host</name> <value>hadoop102</value> </property> <!-- 指定存儲元數據要連接的地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://hadoop102:9083</value> </property> <!-- 元數據存儲授權 hive默認不允許去外部存儲,所以得關閉授權--> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- Hive元數據存儲版本的驗證--> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <!-- hiveserver2的高可用參數,開啟此參數可以提高hiveserver2的啟動速度 --> <property> <name>hive.server2.active.passive.ha.enable</name> <value>true</value> </property> </configuration>
#登錄MySQL 創建元數據庫 create database metastore #退出MySQL 初始化元數據 schematool -initSchema -dbType mysql -verbose
#啟動元數據服務(前臺服務,連接mysql獲取元數據) hive --service metastore #啟動hiveserver2服務(前臺服務,jdbc連接服務) hive --service hiveserver2 #——0 標準輸入 ——1 標準輸出 ——2 錯誤輸出 -->& 將一個句柄的輸出寫入到另一個句柄的輸入中。 #——nohup: 命令開頭,表示不掛起,也就是關閉終端進程也繼續保持運行狀態 ——&: 命令結尾,表示后臺運行 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 #檢查進程是否運行正常,參數1為進程名,參數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服務已啟動" server2pid=$(check_process HiveServer2 10000) cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &" [ -z "$server2pid" ] && eval $cmd || echo "HiveServer2服務已啟動" } function hive_stop() { metapid=$(check_process HiveMetastore 9083) [ "$metapid" ] && kill $metapid || echo "Metastore服務未啟動" server2pid=$(check_process HiveServer2 10000) [ "$server2pid" ] && kill $server2pid || echo "HiveServer2服務未啟動" } 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服務運行正常" || echo "Metastore服務運行異常" check_process HiveServer2 10000 >/dev/null && echo "HiveServer2服務運行正常" || echo "HiveServer2服務運行異常" ;; *) echo Invalid Args! echo 'Usage: '$(basename $0)' start|stop|restart|status' ;; esac
#1.Hive啟動 bin/hive #打印當前庫與表頭需配置hive-site.xml <property> <name>hive.cli.print.header</name> <value>true</value> <description>Whether to print the names of the columns in query output.</description> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> <description>Whether to include the current database in the Hive prompt.</description> </property> #2.JDBC啟動 beeline -u jdbc:hive2://hadoop102:10000 -n luck
#查看所有命令 bin/hive -help #1. hive -e 不進入hive窗口執行sql語句 bin/hive -e "select id from student;" #2. hive -f 執行腳本中的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文件系統 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堆內存設置 #修改hive-env.sh.template為hive-env.sh export HADOOP_HEAPSIZE=1024 #3.參數配置的優先級 #3.1 配置文件(永久) #Hadoop配置文件-->默認配置文件:hive-default.xml-->用戶自定義配置文件:hive-site.xml #3.2 命令行參數(hive啟動前,僅對本次hive有效) beeline -u jdbc:hive2://hadoop102:10000 -n luck -hiveconf mapreduce.job.reduces=10; #3.3 參數聲明(hive啟動后,僅對本次hive有效) hive (default)> set mapreduce.job.reduces=10; #優先級:參數聲明>命令行參數>配置文件
以上是“Hive如何安裝”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。