1. 程式人生 > >[Hive]HiveServer2配置

[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-4752)。這對於支援客戶端和伺服器之間需要代理時非常有用(例如,為了負載均衡或安全原因)。目前,可以在TCP模式或HTTP模式下執行HiveServer2,但不能同時執行HiveServer2。對於相應的JDBC URL,請參考:HiveServer2客戶端 - JDBC連線URL。 使用以下設定啟用和配置HTTP模式:

設定預設值描述
hive.server2.transport.modebinary設定為http以啟用HTTP傳輸模式
hive.server2.thrift.http.port10001需要監聽的HTTP埠
hive.server2.thrift.http.max.worker.threads500最大工作執行緒
hive.server2.thrift.http.min.worker.threads5最小工作執行緒
hive.server2.thrift.http.pathcliservice服務端點

1.4 可選的全域性初始化檔案

全域性初始化檔案可以放置在hive.server2.global.init.file.location在配置的位置(Hive 0.14開始版本,參見HIVE-5160HIVE-7497HIVE-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.levelhive.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.hosthive.server2.webui.porthive.server2.webui.max.threads等。
  • Hive Metrics可以通過使用Metrics Dump選項卡檢視。
  • 可以使用本地日誌選項卡檢視日誌。

image

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