啟動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())