gpt4 book ai didi

python - 使用带有 kerberos 票证的 pyhive 连接到 kerberized hadoop 集群

转载 作者:行者123 更新时间:2023-12-02 19:55:02 38 4
gpt4 key购买 nike

我想在我们的 kerberized Hadoop 集群上连接到 Hive,然后从已经有自己的 Kerberose 客户端并且可以工作的机器运行一些 hql 查询(显然是哈哈 :)),keytab 已经通过并测试。

我们的 Hadoop 运行 HWS 3.1 和 CentOS7,我的机器也运行 CentOS7
我正在使用 Python 3.7.3 和 PyHive (0.6.1)。

我已经安装了一堆库(我也尝试卸载它们),因为我正在浏览不同的论坛(HWS,Cloudera,这里是......)

我通过 pip sasl 库安装

  • 纯sasl (0.6.1)
  • pysasl (0.4.1)
  • sasl (0.2.1)
  • 节俭-sasl (0.3.0)

  • 我是通过yum安装的
  • 赛勒斯-sasl-2.1.26-23.el7.x86_64
  • cyrus-sasl-lib-2.1.26-23.el7.x86_64
  • 赛勒斯-sasl-plain-2.1.26-23.el7.x86_64
  • saslwrapper-devel-0.16-5.el7.x86_64
  • saslwrapper-0.16-5.el7.x86_64
  • cyrus-sasl-lib-2.1.26-23.el7.i686
  • cyrus-sasl-devel-2.1.26-23.el7.x86_64

  • 下面是我与 hive 的联系
    return hive.Connection(host=self.host, port=self.port,
    database=self.database, auth=self.__auth,
    kerberos_service_name=self.__kerberos_service_name)

    这是我的 yaml 的一部分
    hive_interni_hdp: 
    db_type: hive
    host: domain.xx.lan
    database: database_name
    user: user_name
    port: 10000
    auth: KERBEROS
    kerberos_service_name: hive

    当我尝试运行代码时,出现以下错误。
      File "/opt/Python3.7.3/lib/python3.7/site-packages/dfpy/location.py", line 1647, in conn
    self.__conn = self._create_connection()
    File "/opt/Python3.7.3/lib/python3.7/site-packages/dfpy/location.py", line 1633, in _create_connection
    kerberos_service_name=self.__kerberos_service_name)
    File "/opt/Python3.7.3/lib/python3.7/site-packages/pyhive/hive.py", line 192, in __init__
    self._transport.open()
    File "/opt/Python3.7.3/lib/python3.7/site-packages/thrift_sasl/__init__.py", line 79, in open
    message=("Could not start SASL: %s" % self.sasl.getError()))
    thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found'

    有没有人走运?障碍在哪里? Pyhive 库,错误的 Kerberos 连接设置?

    最佳答案

    我找到了解决方案,我查看了此文档 https://www.cyrusimap.org/sasl/sasl/sysadmin.html

    GSSAPI 在哪里提到(使用我正在使用的 Kerberos 5)并且我已经检查过,我的机器上不支持 gssapi

    sasl2-shared-mechlist

    它表示

    GSS-SPNEGO,LOGIN,PLAIN,ANONYMOUS



    但是在安装 gssapi 库之后
    yum install cyrus-sasl-gssapi

    机械 list 状态

    GSS-SPNEGO,GSSAPI,LOGIN,PLAIN,ANONYMOUS



    比我再次运行代码,万岁!

    附言不要忘记验证并验证您的 key 表是否有效
    kinit -kt /root/user.keytab user@domain.com
    klist

    关于python - 使用带有 kerberos 票证的 pyhive 连接到 kerberized hadoop 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57521448/

    38 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com