anaconda3.6.5安装pyhive
1.首先安裝anaconda3.6.5
略
2.配置好bin下環境變量
3.來到anaconda官網,搜索需要的包,pyhive(不是anaconda前綴的也行,例如biaze/pyhive)
https://anaconda.org/anaconda/
?
如上截圖,選擇?anaconda?對應的pyhive,點擊進去
點擊FIles,選擇linux-64/pyhive-0.6.0-py36_0.tar.bz2
注:_0,_1是小版本,下那個都行;py36對應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
如果報錯,就去安裝對應缺少的包,直接在anaconda3官網搜索
例如:
這里缺少的past,你去搜索會發現只有paste,安裝后還是會報這個錯,這時直接百度python paste
?
點擊進去安裝past包,發現past是含在future包中的,在anaconda3官網搜索future安裝對應版本,解決上面的問題,pyhive至此安裝完畢
6.pyhive測試
(1)首先啟動hiveserver2服務(后臺啟動,命令打全)
nohup?hive?--service?hiveserver2?--hiveconf?hive.server2.thrift.port=端口 ?&
注:別與其他用戶端口沖突,可以先這樣啟動:hive?--service?hiveserver2?--hiveconf?hive.server2.thrift.port=端口,然后查看是否有端口沖突報錯
(2)進入python進行測試連接:(端口為啟動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 的結果,insert無法輸出)
(3)關于pyhive insert等走mr流程的操作無法得到資源運行的問題,請設置如下:
cursor.execute("set?mapreduce.job.queuename=隊列名")(測試可用,放到執行語句前面)
(4)關閉hive鎖
set hive.support.concurrency=false;
問題:
pyhive先執行select,在執行insert操作,出現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)')
這一步出現報錯
解決:
執行如下:
cursor.execute("set hive.support.concurrency=false")
再次運行,成功執行
?
總結
以上是生活随笔為你收集整理的anaconda3.6.5安装pyhive的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11.设备驱动程序
- 下一篇: 数商云医药行业SCM供应链管理系统应用场