當前位置:成語大全網 - 書法字典 - Python連接hive,如何安裝thrifthive?

Python連接hive,如何安裝thrifthive?

HiveServer2啟動

啟動HiveServer2

HiveServer2易於啟動:

$ $HIVE_HOME/bin/hiveserver2

或者

$ $ HIVE _ HOME/bin/HIVE-service HIVE server 2

默認情況下,HiverServer2的Thrift偵聽端口為10000,其WEB UI端口為10002。您可以通過http://localhost:10002查看HiveServer2的Web UI界面,其中顯示了Hive的壹些基本信息。如果無法查看Web界面,則HiveServer2沒有成功運行。

使用直線測試客戶端連接。

HiveServer2運行成功後,我們可以使用Hive提供的客戶端工具beeline來連接HiveServer2。

$ $HIVE_HOME/bin/beeline

直線& gt!連接JDBC:hive 2://localhost:10000

如果您成功登錄,將出現以下命令提示符。這時,妳可以寫HQL報表。

0:JDBC:hive 2://localhost:10000 & gt;

錯誤:用戶:XXX不允許模擬匿名。

直線使用它!當connect連接到HiveServer2時,可能會出現以下錯誤消息:

原因:org . Apache . Hadoop . IPC . remote exception:

用戶:xxx不允許模仿匿名

Xxx是我的操作系統用戶名。這個問題的解決方案是在hadoop的core-size.xml文件中添加xxx用戶代理配置:

& lt屬性& gt& ltname & gtHadoop . proxy user . XXX . groups & lt;/name & gt;& lt值& gt* & lt/value & gt;& lt/property & gt;& lt屬性& gt& ltname & gtHadoop . proxy user . XXX . hosts & lt;/name & gt;& lt值& gt* & lt/value & gt;& lt/property & gt;

重新啟動HDFS後,將HiveServer2與beeline連接以成功連接。

常見配置

關於HiveServer2的配置,請參考官方文檔設置HiveServer2。

以下是hive-site.xml的壹些常見配置:

Hive.server2.thrift.port:要偵聽的TCP端口號。默認值為10000。

hive . server 2 . thrift . bind . host:TCP接口的綁定主機。

Hive.server2.authentication:身份驗證方法。默認值為無(使用普通SASL),即不執行驗證檢查。其他選項有NOASL、Kerberos、LDAP、PAM和custom。

Hive.server2.enable.doAs:是否以模擬方式執行查詢處理。默認值為真。

Python客戶端連接HiveServer2

python中有三個客戶端用於連接HiveServer2: pyhs2、pyhive和impyla。官網的例子使用pyhs2,但是pyhs2的官網已經聲明不再提供支持,建議使用impyla和pyhive。我們在這裏使用英皮拉。

安裝英皮拉

Impyla的必要依賴項包括:

位數組

節儉(python2.x是節儉)

為了支持Hive,您還需要以下兩個軟件包:

sasl

節儉_sasl

您可以在Python PI中下載impyla及其依賴包的源代碼。

Impyla示例

以下是使用impyla連接到HiveServer2的示例:

從impala.dbapi導入連接

conn = connect(host =‘127 . 0 . 0 . 1’,port=10000,database =‘default’,auth _ mechanism =‘PLAIN’)

cur = conn.cursor()

cur . execute(‘SHOW DATABASES‘)print(cur . fetchall())

cur . execute(‘SHOW Tables‘)print(cur . fetchall())