HiveServer2(HS2)是一個伺服器接口,能使遠端用戶端執行Hive查詢,并且可以檢索結果。HiveServer2是HiveServer1的改進版,HiveServer1已經被廢棄。HiveServer2可以支援多用戶端并發和身份認證。旨在為開放API用戶端(如JDBC和ODBC)提供更好的支援。
這篇文章将介紹如何配置伺服器端。如何使用用戶端與此伺服器端互動将在下篇文章中介紹。
備注
Hive 0.11版本引入. See
HIVE-2935 .https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#1-%E9%85%8D%E7%BD%AE 1. 配置
https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#11-hive-sitexml%E4%B8%AD%E9%85%8D%E7%BD%AE 1.1 hive-site.xml中配置
hive.server2.thrift.min.worker.threads – 最小工作線程, 預設為 5.
hive.server2.thrift.max.worker.threads – 最大工作線程, 預設為 500.
hive.server2.thrift.port – 監聽的TCP端口号, 預設為 10000.
hive.server2.thrift.bind.host – 綁定的TCP接口.
其他的選項可以參考
HiveServer2 in the Configuration Properties documenthttps://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#12-%E5%8F%AF%E9%80%89%E7%8E%AF%E5%A2%83%E8%AE%BE%E7%BD%AE 1.2 可選環境設定
HIVE_SERVER2_THRIFT_BIND_HOST – 綁定到的TCP host接口(可選)。覆寫配置檔案設定。
HIVE_SERVER2_THRIFT_PORT – 要監聽的TCP端口号(可選),預設為10000.覆寫配置檔案設定。
https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#13-http%E6%A8%A1%E5%BC%8F%E8%BF%90%E8%A1%8C 1.3 HTTP模式運作
HiveServer2支援通過HTTP傳輸發送Thrift RPC消息(Hive 0.13版本開始,參見
HIVE-4752)。這對于支援用戶端和伺服器之間需要代理時非常有用(例如,為了負載均衡或安全原因)。目前,可以在TCP模式或HTTP模式下運作HiveServer2,但不能同時運作HiveServer2。對于相應的JDBC URL,請參考:
HiveServer2用戶端 - JDBC連接配接URL。 使用以下設定啟用和配置HTTP模式:
設定 | 預設值 | 描述 |
---|---|---|
hive.server2.transport.mode | binary | 設定為http以啟用HTTP傳輸模式 |
hive.server2.thrift.http.port | 10001 | 需要監聽的HTTP端口 |
hive.server2.thrift.http.max.worker.threads | 500 | 最大工作線程 |
hive.server2.thrift.http.min.worker.threads | 5 | 最小工作線程 |
hive.server2.thrift.http.path | cliservice | 服務端點 |
https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#14-%E5%8F%AF%E9%80%89%E7%9A%84%E5%85%A8%E5%B1%80%E5%88%9D%E5%A7%8B%E5%8C%96%E6%96%87%E4%BB%B6 1.4 可選的全局初始化檔案
全局初始化檔案可以放置在
hive.server2.global.init.file.location
在配置的位置(Hive 0.14開始版本,參見
HIVE-5160,
HIVE-7497和
HIVE-8138)。 這可以是初始化檔案本身的路徑,也可以是一個名為
.hiverc
的初始化檔案目錄。
初始化檔案列出了将為此HiveServer2執行個體的使用者運作的一組指令,例如注冊一組标準的jar和函數。
https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#15-%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E9%85%8D%E7%BD%AE 1.5 日志記錄配置
Beeline用戶端可以擷取HiveServer2記錄檔(Hive 0.14開始版本)。配置日志記錄一些參數如下:
hive.server2.logging.operation.enabled 預設為true,表示HiveServer2将為用戶端儲存記錄檔
hive.server2.logging.operation.log.location 如果啟用此功能,則存儲記錄檔到頂級目錄中。
hive.server2.logging.operation.verbose (Hive 0.14 到 1.1)如果為true,則可以為用戶端提供HiveServer2記錄檔。 在Hive 1.2.0中替換為hive.server2.logging.operation.level。
hive.server2.logging.operation.level (Hive 1.2 開始版本) 可以設定HiveServer2記錄檔級别
https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#2-%E5%A6%82%E4%BD%95%E5%BC%80%E5%A7%8B 2. 如何開始
$HIVE_HOME/bin/hiveserver2
或者
$HIVE_HOME/bin/hive --service hiveserver2
https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#21-%E4%BD%BF%E7%94%A8%E4%BF%A1%E6%81%AF 2.1 使用資訊
-H或--help選項顯示使用消息,例如:
$HIVE_HOME/bin/hive --service hiveserver2 -H
Starting HiveServer2
usage: hiveserver2
-H,--help Print help information
--hiveconf <property=value> Use value for given property
https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#3-web-ui 3. Web UI
Hive 2.0.0版本引入.
HiveServer2的Web使用者界面(UI)提供配置,日志記錄,度量(metrics)和活動會話資訊。 預設情況下,Web UI可以在端口10002(127.0.0.1:10002)上使用。
- 可以在
中自定義Web UI的配置屬性,其中包括hive-site.xml
hive.server2.webui.host
hive.server2.webui.port
等。hive.server2.webui.max.threads
- Hive Metrics可以通過使用
頁籤檢視。Metrics Dump
- 可以使用
頁籤檢視日志。本地日志
該接口目前正在
HIVE-12338上開發。

https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB9516f1e98d7d57135294a4a43fa677ce%3Fmethod%3Ddownload%26read%3Dtrue#4-python-%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F 4. Python 用戶端驅動程式
HiveServer2的Python用戶端驅動程式可在
https://github.com/BradRuderman/pyhs2上獲得(謝謝Brad)。它包括所有必需的軟體包,如SASL和Thrift包裝器(wrappers)。
該驅動程式已被認證可用于Python 2.6及更高版本。
要使用
pyhs2驅動程式:
pip install pyhs2
然後:
import pyhs2
with pyhs2.connect(host='localhost',
port=10000,
authMechanism="PLAIN",
user='root',
password='test',
database='default') as conn:
with conn.cursor() as cur:
#Show databases
print cur.getDatabases()
#Execute query
cur.execute("select * from table")
#Return column info from query
print cur.getSchema()
#Fetch table results
for i in cur.fetch():
print i
原文:
https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2