用SQL炼金术查询Kerberized配置单元

2024-10-01 11:27:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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的支持。在


Tags: sqlasconnectwithkerberosconn单元hive
1条回答
网友
1楼 · 发布于 2024-10-01 11:27:29

安装这些库

  • sasl公司
  • 节俭
  • 节俭
  • 蜂巢

拿到你的kerberos票,然后

engine = create_engine('hive://HOST:10500/DB_NAME',
connect_args={'auth': 'KERBEROS', 'kerberos_service_name': 'hive'})

注意:/DB_NAME是可选的

相关问题 更多 >