配置hiveserver2访问hive
- 目錄:
- 1、前言
- 2、beeline相關(guān)的Server.Thrift配置
- 3、啟動beeline并訪問Hive
- 4、期間遇到的問題和解決方法
目錄:
1、前言
作為數(shù)據(jù)倉庫的工具,hive提供了兩種ETL運(yùn)行方式,分別是通過Hive 命令行和beeline客戶端;
命令行方式即通過hive進(jìn)入命令模式后通過執(zhí)行不同的HQL命令得到對應(yīng)的結(jié)果;相當(dāng)于胖客戶端模式,即客戶機(jī)中需要安裝JRE環(huán)境和Hive程序。
beeline客戶端方式相當(dāng)于瘦客戶端模式,采用JDBC方式借助于Hive Thrift服務(wù)訪問Hive數(shù)據(jù)倉庫。
HiveThrift(HiveServer)是Hive中的組件之一,設(shè)計目的是為了實(shí)現(xiàn)跨語言輕量級訪問Hive數(shù)據(jù)倉庫,有Hiveserver和 Hiveserver2兩個版本,兩者不兼容,使用中要注意區(qū)分。體現(xiàn)在啟動HiveServer的參數(shù)和jdbc:hiveX的參數(shù)上。
2、beeline相關(guān)的Server.Thrift配置
主要是hive/conf/hive-site.xml中hive.server2.thrift相關(guān)的一些配置項,但要注意一致性。
<property><name>hive.server2.thrift.bind.host</name><value>ha1</value><description>Bind host on which to run the HiveServer2 Thrift service.</description></property><property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description></property>進(jìn)入beeline連接數(shù)據(jù)庫后,因?yàn)橐L問的文件在HDFS上,對應(yīng)的路徑有訪問權(quán)限限制,所以,這里要設(shè)成hadoop中的用戶名,實(shí)例中用戶名即為’root’(看你用什么用戶來啟動hadoop的)。如果使用其它用戶名,可能會報權(quán)限拒絕的錯誤。或通過修改hadoop中的配置項hadoop.proxyuser.XX為“*” 來放寬用戶名和權(quán)限,如示例。
hadoop/etc/hadoop/core-site.xml
3、啟動beeline并訪問Hive
slave01上啟動hiveserver2,
nohup hive --service hiveserver2 & nohup hiveserver2 1>/root/apps/hive-2.1.1/logs/hiveserver.log 2>/root/apps/hive-2.1.1/logs/hiveserver.err &(將hivesever的日志導(dǎo)入對應(yīng)的目錄) ps -ef | grep Hive能看到Hiveserver2已啟動
master機(jī)器上執(zhí)行beeline并訪問hive
root@master:~/bigdata/hive$ beeline Beeline version 1.2.1.spark2 by Apache Hive beeline> beeline> !connect jdbc:hive2://ha1:10000 // 2中配置項的host:port ,因?yàn)閱拥氖莌iveserver2,所以參數(shù)中是hive2 Connecting to jdbc:hive2://ndh-ha1:10000 Enter username for jdbc:hive2://ndh-ha1:10000: root Enter password for jdbc:hive2://ndh-ha1:10000: **** //2中配置項的user/password 17/09/08 14:39:27 INFO jdbc.Utils: Supplied authorities: ndh-slave01:10000 17/09/08 14:39:27 INFO jdbc.Utils: Resolved authority: ndh-slave01:10000 17/09/08 14:39:27 INFO jdbc.HiveConnection: Will try to open client transport with JDBC Uri: jdbc:hive2://ha1:10000 Connected to: Apache Hive (version 2.1.1) Driver: Hive JDBC (version 1.2.1.spark2) Transaction isolation: TRANSACTION_REPEATABLE_READ 0: jdbc:hive2://ha1:10000> 0: jdbc:hive2://slave01:10000> show databases; +----------------+--+ | database_name | +----------------+--+ | default | | feigu3 | | wordcount | +----------------+--+ 3 rows selected (0.379 seconds)0: jdbc:hive2://slave01:10000> select * from wordcount order by count desc limit 50;.........................................................................................看到結(jié)果后,進(jìn)入hadoop yarn http://master:8088/cluster/apps/FINISHED 可看到剛執(zhí)行的任務(wù)。0: jdbc:hive2://slave01:10000> !q 退出beeline4、期間遇到的問題和解決方法
4.1 hadoop is not allowed to impersonate hive // hadoop是hadoop中配置的用戶名,解決方法見2中說明;
具體的原因見:https://blog.csdn.net/qq_16633405/article/details/82190440
轉(zhuǎn)自:https://blog.csdn.net/wqhlmark64/article/details/77894026
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的配置hiveserver2访问hive的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux中python2和python
- 下一篇: GIS数据处理与应用开发一站式解决方案