Kerberos下pyhive使用
在使用DataEngine大數據平臺時,一般集群都是不聯網的,使用pyhive時99%工作都是在安裝相關的python依賴包,并且不同環境上缺少的依賴python包也不太一樣,本篇文章是在DataEngine大數據集群內或客戶端上安裝pyhive,使用python版本為2.7。
本篇文章介紹下如何在離線情況下安裝pyhive。
安裝依賴包
在安裝Pyhiv前需要先安裝如下依賴:
分別對安裝包進行解壓,執行python setup.py install 進行安裝,安裝順序如下:
?這些包已經為大家準備好,可以直接在網盤下載,下載鏈接:
鏈接: https://pan.baidu.com/s/1XFozZU1t5WFgie2HUA-SKA 提取碼: fmmi 復制這段內容后打開百度網盤手機App,操作更方便哦
如果安裝過程中還提示缺失其他包,那么需要在pypi:PyPI · The Python Package Index?自行下載:
?
執行pyhive測試程序
準備pyhive測試代碼,當前環境為開啟kerberos,需要在代碼中先執行認證命令,并將keytab替換為自己認證文件和目錄:
import os from pyhive import hivefrom TCLIService.ttypes import TOperationState #此地方可以忽略,為了獲取執行結果狀態#先進行kerberos認證,keytab及存放路徑和principal修改為具體值 os.system('kinit -kt {}/hadoop.keytab {}'.format('/opt/pyhive/','hadoop')) # 打開hive連接,需要啟動hiveserver2,修改host為集群hiveserver名 hiveConn = hive.connect(host='node1',port=10000,auth='KERBEROS',kerberos_service_name='hive')cursor = hiveConn.cursor()# 執行sql語句cursor.execute('create table if not exists test(id int, name string)', async=False)cursor.execute('insert into test values(1111, "aaaa")', async=False)cursor.execute('select * from test', async=True)# 得到執行語句的狀態status = cursor.poll().operationStateprint "status:",status# 打印結果#print cursor.fetchall()#print cursor.fetchall()for result in cursor.fetchall():print "aaaaa"*20print resultprint "end**" *10# 關閉hive連接cursor.close()hiveConn.close()執行python testhive.py:
安裝過程問題匯總:
1.? 可能出現can not find setuptools 或者 Requirement.parse('setuptools>=20.5' )異常
?刪除python目錄下舊版本setup,rm -rf /usr/lib/python2.7/site-packages/setuptools然后安裝新版本setup:
unzip?setuptools-41.6.0.zipcd setuptools-41.6.0python setup.py install2. 找不到python.h文件
??原因一般是python安裝存在問題,重新安裝python-devel即可:
yum install?python-devel
?3. 執行testhive.py文件時出現?no mechanism available: No worthy mechs found
這種一般由于sasl安裝存在問題,可以安裝cyrus解決:
rpm -ivh cyrus-sasl-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-gssapi-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-gssapi-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-lib-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-lib-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-plain-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-plain-2.1.26-23.el7.x86_64.rpm
?
總結
以上是生活随笔為你收集整理的Kerberos下pyhive使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sata7p 定义_纯正良品SATA7P
- 下一篇: 系统托盘工具收集