天天看點

[Hive]HiveServer2配置

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 document

https://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)上使用。

  • 可以在

    hive-site.xml

    中自定義Web UI的配置屬性,其中包括

    hive.server2.webui.host

    hive.server2.webui.port

    hive.server2.webui.max.threads

    等。
  • Hive Metrics可以通過使用

    Metrics Dump

    頁籤檢視。
  • 可以使用

    本地日志

    頁籤檢視日志。

該接口目前正在

HIVE-12338

上開發。

[Hive]HiveServer2配置

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