[Hive]HiveServer2配置
HiveServer2(HS2)是一個伺服器介面,能使遠端客戶端執行Hive查詢,並且可以檢索結果。HiveServer2是HiveServer1的改進版,HiveServer1已經被廢棄。HiveServer2可以支援多客戶端併發和身份認證。旨在為開放API客戶端(如JDBC和ODBC)提供更好的支援。
這篇文章將介紹如何配置伺服器端。如何使用客戶端與此伺服器端互動將在下篇文章中介紹。
備註
Hive 0.11版本引入. See HIVE-2935.
1. 配置
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介面.
1.2 可選環境設定
HIVE_SERVER2_THRIFT_BIND_HOST – 繫結到的TCP host介面(可選)。覆蓋配置檔案設定。
HIVE_SERVER2_THRIFT_PORT – 要監聽的TCP埠號(可選),預設為10000.覆蓋配置檔案設定。
1.3 HTTP模式執行
HiveServer2支援通過HTTP傳輸傳送Thrift RPC訊息(Hive 0.13版本開始,參見
設定 | 預設值 | 描述 |
---|---|---|
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 | 服務端點 |
1.4 可選的全域性初始化檔案
全域性初始化檔案可以放置在hive.server2.global.init.file.location
在配置的位置(Hive 0.14開始版本,參見HIVE-5160,HIVE-7497和HIVE-8138)。 這可以是初始化檔案本身的路徑,也可以是一個名為.hiverc
的初始化檔案目錄。
初始化檔案列出了將為此HiveServer2例項的使用者執行的一組命令,例如註冊一組標準的jar和函式。
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操作日誌級別
2. 如何開始
$HIVE_HOME/bin/hiveserver2
或者
$HIVE_HOME/bin/hive --service hiveserver2
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
3. Web UI
備註
Hive 2.0.0版本引入.
HiveServer2的Web使用者介面(UI)提供配置,日誌記錄,度量(metrics)和活動會話資訊。 預設情況下,Web UI可以在埠10002(127.0.0.1:10002)上使用。
- 可以在
hive-site.xml
中自定義Web UI的配置屬性,其中包括hive.server2.webui.host
,hive.server2.webui.port
,hive.server2.webui.max.threads
等。 - Hive Metrics可以通過使用
Metrics Dump
選項卡檢視。 - 可以使用
本地日誌
選項卡檢視日誌。
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