我试图用SQL Alchemy查询Kerberized配置单元集群。我可以使用pyhs2提交查询,这确认在通过Kerberos进行身份验证时可以连接和查询配置单元:
import pyhs2
with pyhs2.connect(host='hadoop01.woolford.io',
port=10500,
authMechanism='KERBEROS') as conn:
with conn.cursor() as cur:
cur.execute('SELECT * FROM default.mytable')
records = cur.fetchall()
# etc ...
我注意到Airbnb's Airflow使用SQL炼金术,可以连接到Kerberized Hive,因此我认为可以这样做:
^{pr2}$我不确定应该在connect_args
字典中设置什么参数。您能看到需要添加什么来实现这一点吗(例如Kerberos服务名、领域等)?在
在幕后,sqlalchemy正在使用PyHive连接到Hive。PyHive的当前版本v0.2.1不支持Kerberos。在
我注意到Yahoo有人创建了一个pull request来支持Kerberos。此PR尚未合并/发布,因此我只是将PR中的代码复制到超集服务器上的/usr/lib/python2.7/site-packages/pyhive/hive.py
中,创建了如下连接:
engine = create_engine('hive://hadoop01:10500', connect_args={'auth': 'KERBEROS', 'kerberos_service_name': 'hive'})
希望PyHive的维护者能够合并/释放对Kerberos的支持。在
安装这些库
拿到你的kerberos票,然后
注意:/DB_NAME是可选的
相关问题 更多 >
编程相关推荐