anaconda3.6.5安装pyhive
1.首先安裝anaconda3.6.5
略
2.配置好bin下環(huán)境變量
3.來到anaconda官網(wǎng),搜索需要的包,pyhive(不是anaconda前綴的也行,例如biaze/pyhive)
https://anaconda.org/anaconda/
?
如上截圖,選擇?anaconda?對應(yīng)的pyhive,點(diǎn)擊進(jìn)去
點(diǎn)擊FIles,選擇linux-64/pyhive-0.6.0-py36_0.tar.bz2
注:_0,_1是小版本,下那個都行;py36對應(yīng)python3.6
4.安裝pyhive
conda install?pyhive-0.6.0-py36_0.tar.bz2
5.啟動python(anaconda3.6.5/bin/python)
from pyhive import hive
如果報(bào)錯,就去安裝對應(yīng)缺少的包,直接在anaconda3官網(wǎng)搜索
例如:
這里缺少的past,你去搜索會發(fā)現(xiàn)只有paste,安裝后還是會報(bào)這個錯,這時(shí)直接百度python paste
?
點(diǎn)擊進(jìn)去安裝past包,發(fā)現(xiàn)past是含在future包中的,在anaconda3官網(wǎng)搜索future安裝對應(yīng)版本,解決上面的問題,pyhive至此安裝完畢
6.pyhive測試
(1)首先啟動hiveserver2服務(wù)(后臺啟動,命令打全)
nohup?hive?--service?hiveserver2?--hiveconf?hive.server2.thrift.port=端口 ?&
注:別與其他用戶端口沖突,可以先這樣啟動:hive?--service?hiveserver2?--hiveconf?hive.server2.thrift.port=端口,然后查看是否有端口沖突報(bào)錯
(2)進(jìn)入python進(jìn)行測試連接:(端口為啟動hiveserver2的端口)
from pyhive import hive
conn = hive.Connection(host='xxxx', port=xxxx, username='xxx', database='xxxx')
cursor= conn.cursor()
cursor.execute('select * from xxx limit 10')
for result in cursor.fetchall():
? ?(三個及以上空格)print result (只能輸出select 的結(jié)果,insert無法輸出)
(3)關(guān)于pyhive insert等走mr流程的操作無法得到資源運(yùn)行的問題,請?jiān)O(shè)置如下:
cursor.execute("set?mapreduce.job.queuename=隊(duì)列名")(測試可用,放到執(zhí)行語句前面)
(4)關(guān)閉hive鎖
set hive.support.concurrency=false;
問題:
pyhive先執(zhí)行select,在執(zhí)行insert操作,出現(xiàn)hive鎖
from pyhive import hive
conn = hive.Connection(host='xxxx', port=xxxx, username='xxx', database='xxxx')
cursor= conn.cursor()
cursor.execute('select * from xxx limit 10')
正常這一步
cursor.execute(‘insert into test values (1)')
這一步出現(xiàn)報(bào)錯
解決:
執(zhí)行如下:
cursor.execute("set hive.support.concurrency=false")
再次運(yùn)行,成功執(zhí)行
?
總結(jié)
以上是生活随笔為你收集整理的anaconda3.6.5安装pyhive的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。