Hive安装超详细教程
Hive3.1.2安裝教程
- 前言
- 初始準(zhǔn)備
- 安裝Hive的具體步驟
- 1、下載hive安裝包
- 2、解壓
- 3、添加Hive核心配置,選擇遠(yuǎn)程MySQL模式
- 4、下載連接MySQL的驅(qū)動包到hive的lib目錄下
- 5、在MySQL上創(chuàng)建Hive的元數(shù)據(jù)存儲庫
- 6、執(zhí)行Hive的初始化工作
- 7、驗證初始化是否成功
- 8、使用hive
- 9、使用beeline
前言
在上篇《Spark集群搭建超詳細(xì)教程》提到了Hive安裝,那么今天就帶領(lǐng)大家進(jìn)行Hive的安裝,閑言少敘,擼起袖子加油干!
初始準(zhǔn)備
還是需要準(zhǔn)備3臺虛擬機(jī),并且還需要做如下準(zhǔn)備工作:
安裝Hive的具體步驟
1、下載hive安裝包
cd /opt/module # 下載hive安裝包 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz2、解壓
tar -zxvf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive3、添加Hive核心配置,選擇遠(yuǎn)程MySQL模式
cd /opt/module/hive/conf vim hive-site.xml添加如下內(nèi)容:
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop1:3306/hivedb?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT</value> </property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value> </property><!-- 修改為你自己的Mysql賬號 --> <property><name>javax.jdo.option.ConnectionUserName</name><value>root</value> </property><!-- 修改為你自己的Mysql密碼 --> <property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value> </property><!-- 忽略HIVE 元數(shù)據(jù)庫版本的校驗,如果非要校驗就得進(jìn)入MYSQL升級版本 --> <property><name>hive.metastore.schema.verification</name><value>false</value> </property><property> <name>hive.cli.print.current.db</name><value>true</value> </property><property> <name>hive.cli.print.header</name><value>true</value> </property><!-- hiveserver2 --> <property><name>hive.server2.thrift.port</name><value>10000</value> </property><property><name>hive.server2.thrift.bind.host</name><value>hadoop1</value> </property>4、下載連接MySQL的驅(qū)動包到hive的lib目錄下
cd /opt/module # 下載MySQL驅(qū)動包 wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar5、在MySQL上創(chuàng)建Hive的元數(shù)據(jù)存儲庫
create database hivedb;6、執(zhí)行Hive的初始化工作
cd /opt/module/hive/bin ./schematool -initSchema -dbType mysql7、驗證初始化是否成功
初始化完成后,在MySQL的hivedb數(shù)據(jù)庫中查看是否初始化成功:
# 若展示多個數(shù)據(jù)表,即代表初始化成功 show tables;8、使用hive
# 啟動hive cd /opt/module/hive/bin ./hive # 啟動后 # 建表 create table student(id int, name string); # 插入數(shù)據(jù) insert into table student(1, 'abc'); # 插入成功后,查詢 select * from student;9、使用beeline
首先啟動hiveserver2服務(wù):
nohup ./bin/hiveserver2>> hiveserver2.log 2>&1 &hiveserver2服務(wù)啟動后,使用beeline客戶端訪問hiveserver2服務(wù):
cd /opt/module/hive # 進(jìn)入beeline客戶端 bin/beeline # 執(zhí)行連接hiveserver2操作 beeline> !connect jdbc:hive2://hadoop1:10000/default# 或者 bin/beeline -u jdbc:hive2://hadoop1:10000/default -n root注意:hive的默認(rèn)引擎為MR!!!
至此,我們就完成了Hive的安裝。
安裝過程中,我們可能會遇到以下問題:
-
問題 1:
com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)
錯誤原因:系統(tǒng)找不到這個類所在的jar包或者jar包的版本不一樣系統(tǒng)不知道使用哪個。hive啟動報錯的原因是后者。
解決辦法:
1)com.google.common.base.Preconditions.checkArgument這個類所在的jar包為:guava.jar
2)hadoop-3.1.3(路徑:hadoop/share/hadoop/common/lib)中該jar包為 guava-27.0-jre.jar;而hive-3.1.2(路徑:hive/lib)中該jar包為guava-19.0.jar
3)將jar包變成一致的版本:刪除hive中低版本jar包,將hadoop中高版本的復(fù)制到hive的lib中。
再次啟動問題得到解決! -
問題2:
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop1:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=08S01,code=0)解決辦法:
<property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>
1)修改hadoop 配置文件 /opt/module/hadoop/etc/hadoop/core-site.xml
添加如下內(nèi)容:然后將core-site.xml 分發(fā)到集群的其他節(jié)點。
2)重啟hadoop集群
-
問題3:用beeline操作hive時,如何關(guān)閉打印的info日志信息?
解決辦法:
1)在使用beeline時加入以下設(shè)置即可--hiveconf hive.server2.logging.operation.level=NONE2)在hive-site.xml中修改如下配置也可以禁用在beeline中顯示額外信息
<property><name>hive.server2.logging.operation.level</name><value>NONE</value><description>Expects one of [none, execution, performance, verbose].HS2 operation logging mode available to clients to be set at session level.For this to work, hive.server2.logging.operation.enabled should be set to true.NONE: Ignore any loggingEXECUTION: Log completion of tasksPERFORMANCE: Execution + Performance logs VERBOSE: All logs</description> </property>
微信公眾號:掃描下方二維碼 或 搜索 笑看風(fēng)云路 關(guān)注
總結(jié)
以上是生活随笔為你收集整理的Hive安装超详细教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: layui radio 根据获取的到值
- 下一篇: 简述isodata算法的原理_算法常见面