impyla安装
连接hiveserver2的python的client端,可以提供impala、hive的使用功能。
python2.7
pip install thrift_sasl==0.2.1
pip install thrift
pip install six
pip install bit_array
pip install impyla
python3.3+
pip install thrift_sasl==0.2.1
pip install thrift
pip install thriftpy
pip install six
pip install bit_array
pip install impyla
或者
pip install thrift_sasl
pip install thrift==0.9.3
pip install thriftpy
pip install six
pip install bit_array
pip install impyla
注意
如果初始安装有如下错误
In file included from sasl/saslwrapper.cpp:254:0:
sasl/saslwrapper.h:22:23: 致命错误:sasl/sasl.h:没有那个文件或目录
#include <sasl/sasl.h>
^
编译中断。
error: command 'gcc' failed with exit status 1
解决思路如下:
1.确认gcc是否安装,若安装则进行下一步
2.1 cesnos解决方案
yum install cyrus-sasl-lib.x86_64
yum install cyrus-sasl-devel.x86_64
yum install libgsasl-devel.x86_64
yum install saslwrapper-devel.x86_64
一般前三句就可以
2.2 Ubuntu解决方案
sudo apt-get install libsasl2-dev
impyla的使用
hive/impala的连接demo
from impala.dbapi import connect
#hive
conn = connect(host='172.31.28.201',port=10000,auth_mechanism='PLAIN')
#impala
#conn=connect(host='172.31.28.201',port=21050,auth_mechanism='NOSASL')
cur = conn.cursor()
# cur.execute('SHOW DATABASES')
# print(cur.fetchall())
cur.execute("use test")
cur.execute('''
show create table tbl_test_b4
''')
for row in cur:
print(row[0])
cur.execute("""
select * from tbl_test_b4 limit 10
""")
print('-------------------------------------------------------------------------------------------')
for row in cur:
print("this row length is %d"%len(row))
print(row)
# print('data_1->%s,data_2->%s,data_3->%s,data_4->%s,data_5->%s'%(row[0],row[1],row[2],row[3],row[4]))
print('***************************************************************************************')
cur.close()
conn.close()