python2.7连接hive SASL

先安装必要包
pip install six;
pip install bit_array;
pip install thrift;
#https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl 下载
wget sasl‑0.2.1‑cp27‑cp27m‑win_amd64.whl;
pip install sasl-0.2.1-cp27-cp27m-win_amd64.whl;
pip install thrift-sasl==0.2.1;
pip install pyhive;
from pyhive import hive
def get_connection():
    # hive.Connection(host='10.0.1.18', port=10000, username='hdfs', database='aiops')
    conn = hive.Connection(host='node2', port=10000, username='hdfs', database='tc_rc_fs')
    return conn


def execute(sql, *args):
    connection = get_connection()
    cursor = connection.cursor()
    # show variables like 'character_set_%'; 查看字符集
    cursor.execute(sql)
    fetchall = cursor.fetchall()
    cursor.close()
    connection.close()
    return fetchall


def main(args):
    databases = map(lambda x: x[0], getDatabases())
    for database in databases:
        print(database)


if __name__ == '__main__':
    main(sys.argv[1:])

这个时候会报错

Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'

查询sasl安装位置
在这里插入图片描述
文件位置C:\Python27\Lib\site-packages\sasl\sasl2
修改注册表
之所以pyhive无法链接hive库是因为,所引用的sasl无法初始化,在windows下,需要指定初始化时的dll库位置,运行regedit程序,打开注册表编辑。
创建一个注册表项:
\HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library
在这里新建一个字符串项SearchPath,内容填入前面记录的路径。如下图:
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值