Hive 教程(八)-hiveserver2


hive 的另外一種啟動方式是 hiveserver2,它是提供了一種服務,使得我們可以遠程操作 hive,就像操作 mysql 一樣

 

hiveserver1

既然有 hiveserver2,肯定有 hiveserver1,不過已經被淘汰,不多做解釋,hiveserver1 的缺點是不支持並發,hiveserver2 支持

 

How to Configure

Configuration Properties in the hive-site.xml File

hive.server2.thrift.min.worker.threads – Minimum number of worker threads, default 5.
hive.server2.thrift.max.worker.threads – Maximum number of worker threads, default 500.
hive.server2.thrift.port – TCP port number to listen on, default 10000.
hive.server2.thrift.bind.host – TCP interface to bind to.

很容易理解,注意他們都有默認值,也就是不是必須配置

 

How to Start

$HIVE_HOME/bin/hiveserver2

or

$HIVE_HOME/bin/hive --service hiveserver2

 

參數查看

$HIVE_HOME/bin/hive --service hiveserver2 -H
Starting HiveServer2
usage: hiveserver2
 -H,--help                        Print help information
    --hiveconf <property=value>   Use value for given property

 

Web UI for HiveServer2

端口為 10002

 

Beeline – Command Line Shell

hiveserver2 提供了遠程操作 hive 的服務,他的客戶端有兩種,一種是 java、python 等編程語言,一種是本地 shell,這里只介紹 shell,編程語言會專門寫一篇博客

 

 

[root@hadoop10 bin]# beeline   啟動命令
Beeline version 2.3.6 by Apache Hive
beeline> !connect jdbc:hive2://hadoop10:10000  # 啟動后輸入該命令
Connecting to jdbc:hive2://hadoop10:10000
Enter username for jdbc:hive2://hadoop10:10000: postgres
Enter password for jdbc:hive2://hadoop10:10000: ********
Connected to: Apache Hive (version 2.3.6)
Driver: Hive JDBC (version 2.3.6)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://hadoop10:10000> show databases;
+----------------+
| database_name  |
+----------------+
| default        |
| hive1          |
| hive1101       |
+----------------+
3 rows selected (1.724 seconds)

1. 啟動 shell 的命令是  beeline,她也是在 hive 的 bin 目錄下;

2. 啟動后輸入命令 

!connect jdbc:hive2://hadoop10:10000    【加粗的是固定的,hive2 代表數據庫類型】

  // 也可以在連接時指定數據庫 !connect jdbc:hive2://hadoop10:10000/hive1101  【hive1101 是數據庫名】

  // 還可以指定用戶名和密碼  !connect jdbc:hive2://localhost:10000 user  password

3. 輸入用戶名、密碼

  // 如果沒有專門配置用戶名和密碼,他們分別是 關系型數據庫,也就是存放元數據的數據庫的 用戶名和密碼

  // 也可以配置用戶名和密碼,配置方法是在 hive 的 hive-site.xml 中加入

<property>
  <name>beeline.hs2.connection.user</name>
  <value>hive</value>
</property>
<property>
  <name>beeline.hs2.connection.password</name>
  <value>hive</value>
</property>

 

異常記錄

Error: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.10.10:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.ap
ache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate hive (state=08S01,code=0)

解決方法

在 hadoop 的 core-site.xml 末尾加上

<property>     
    <name>hadoop.proxyuser.root.hosts</name>     
    <value>*</value>
 </property> 
<property>     
    <name>hadoop.proxyuser.root.groups</name>    
    <value>*</value> 
</property>

注意集群中每個節點都要加

 

以上都是簡單用法,詳情參考 官網

 

 

參考資料:

https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2     HiveServer2 官網

https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients?searchId=AQ9UBBKHW       HiveServer2 Clients官網

https://blog.csdn.net/u011495642/article/details/84305944  異常解決

https://blog.csdn.net/zhanglh046/article/details/78572926


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM