python 操作hive pyhs2方式

时间:2021-05-22

使用kerberos时

import pyhs2class HiveClient: # 初始化 def __init__(self, db_host, user, password, database, port=10000, authMechanism="PLAIN", configuration=None): self.conn = pyhs2.connect(host=db_host, port=port, authMechanism=authMechanism, user=user, password=password, database=database, configuration=configuration, ) # 查询方法 def query(self, sql): with self.conn.cursor() as cursor: cursor.execute(sql) return cursor.fetch() def close(self): self.conn.close()def getHiveData(sql): config = {"mapreduce.job.queuename": "default", 'krb_host': 'hiveserve2ip', 'krb_service': 'hive'} hive_client = HiveClient(db_host='hiveserve2ip', port=10000, user='user@kdc.com', password='hive', database='dw.usee', authMechanism='KERBEROS', configuration=config) print sql result = hive_client.query(sql) return resultCould not start SASL: Error in sasl_client_start (-1) SASL(-1)

安装

yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi

pyhs2 安装 sasl问题

yum install cyrus-sasl-devel yum install cyrus-sasl-lib yum install libgsasl-devel yum install saslwrapper

对接superset hive kerberos

SQLAlchemy URI

hive://herverser2ip:10000/db

扩展 连接参数

{ "metadata_params": {}, "engine_params": { "connect_args": { "auth": "KERBEROS", "kerberos_service_name": "hive", "username" : "user@KDC.COM" } }}

以上这篇python 操作hive pyhs2方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章