Kerberos下pyhive使用
在使用DataEngine大數(shù)據(jù)平臺(tái)時(shí),一般集群都是不聯(lián)網(wǎng)的,使用pyhive時(shí)99%工作都是在安裝相關(guān)的python依賴包,并且不同環(huán)境上缺少的依賴python包也不太一樣,本篇文章是在DataEngine大數(shù)據(jù)集群內(nèi)或客戶端上安裝pyhive,使用python版本為2.7。
本篇文章介紹下如何在離線情況下安裝pyhive。
安裝依賴包
在安裝Pyhiv前需要先安裝如下依賴:
分別對(duì)安裝包進(jìn)行解壓,執(zhí)行python setup.py install 進(jìn)行安裝,安裝順序如下:
?這些包已經(jīng)為大家準(zhǔn)備好,可以直接在網(wǎng)盤下載,下載鏈接:
鏈接: https://pan.baidu.com/s/1XFozZU1t5WFgie2HUA-SKA 提取碼: fmmi 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦
如果安裝過程中還提示缺失其他包,那么需要在pypi:PyPI · The Python Package Index?自行下載:
?
執(zhí)行pyhive測(cè)試程序
準(zhǔn)備pyhive測(cè)試代碼,當(dāng)前環(huán)境為開啟kerberos,需要在代碼中先執(zhí)行認(rèn)證命令,并將keytab替換為自己認(rèn)證文件和目錄:
import os from pyhive import hivefrom TCLIService.ttypes import TOperationState #此地方可以忽略,為了獲取執(zhí)行結(jié)果狀態(tài)#先進(jìn)行kerberos認(rèn)證,keytab及存放路徑和principal修改為具體值 os.system('kinit -kt {}/hadoop.keytab {}'.format('/opt/pyhive/','hadoop')) # 打開hive連接,需要啟動(dòng)hiveserver2,修改host為集群hiveserver名 hiveConn = hive.connect(host='node1',port=10000,auth='KERBEROS',kerberos_service_name='hive')cursor = hiveConn.cursor()# 執(zhí)行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)# 得到執(zhí)行語句的狀態(tài)status = cursor.poll().operationStateprint "status:",status# 打印結(jié)果#print cursor.fetchall()#print cursor.fetchall()for result in cursor.fetchall():print "aaaaa"*20print resultprint "end**" *10# 關(guān)閉hive連接cursor.close()hiveConn.close()執(zhí)行python testhive.py:
安裝過程問題匯總:
1.? 可能出現(xiàn)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. 執(zhí)行testhive.py文件時(shí)出現(xiàn)?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
?
總結(jié)
以上是生活随笔為你收集整理的Kerberos下pyhive使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sata7p 定义_纯正良品SATA7P
- 下一篇: 系统托盘工具收集