【问题标题】:python - unable to connect to TLS1.2 enabled HiveServer2python - 无法连接到启用 TLS1.2 的 HiveServer2
【发布时间】:2019-08-24 01:52:16
【问题描述】:

我有带 SSL(仅启用最低 TLS1.2)和 LDAP 的 HiveServer2,没有启用 kerberos。 hive.server2.transport.mode = 二进制。 直线连接可以正常工作,例如: beeline -u jdbc:hive2://domain:10000/default\;ssl=true\;sslTrustStore=/home/user/query.jks\;trustStorePassword=blah -n user -p pass -e "SELECT * FROM table LIMIT 3"

正如预期的那样,通过直线未传递正确的信任库详细信息或错误的 ldap 凭据意味着连接不起作用。

我想使用 python 库连接到 HiveServer2(特别是使用 TLS1.2 的 Hive 设置)。

我查看了几个库,如 impyla、pyhive、pyhs2、sqlalchemy,但没有一个对我有用。 我看到其他人提出的几个问题:

网上有很多不使用 TLS1.2 保护的 HiveServer2 实例进行连接的示例。

`>>> 从 impala.dbapi 导入连接

conn = connect(host='domain', port=10000, use_ssl=True, auth_mechanism='LDAP', user='user', password='pass', ca_cert='/home/user/query.pem ') 回溯(最近一次通话最后): 文件“”,第 1 行,在 文件“/usr/local/lib/python2.7/site-packages/impala/dbapi.py”,第 147 行,在连接中 auth_mechanism=auth_mechanism) 文件“/usr/local/lib/python2.7/site-packages/impala/hiveserver2.py”,第 658 行,在连接中 运输.open() 文件“/usr/local/lib/python2.7/site-packages/thrift_sasl/init.py”,第 68 行,打开 self._trans.open() 文件“/usr/local/lib64/python2.7/site-packages/thrift/transport/TSSLSocket.py”,第 118 行,打开 消息=消息) thrift.transport.TTransport.TTransportException:无法连接到域:10000:[SSL:WRONG_VERSION_NUMBER] 版本号错误(_ssl.c:726)`

【问题讨论】:

  • 如果您有工作需要更新吗?
  • jaydebeapi 或 pyodbc 都不是真正的原生
  • 您好,到目前为止有任何更新,我也陷入了这个问题。
  • 不,切换到 presto。蜂巢死了

标签: python hadoop hive sqlalchemy impyla


【解决方案1】:

如果 HiveServer2 在启用 SSL 的情况下运行,impyla (0.13.8+) 运行良好。如果 HiveServer2 在禁用 SSL 的情况下运行,则 pyhive 运行良好。

有关依赖项、安装和示例的更多详细信息,请参阅此页面:

https://mr3docs.datamonad.com/docs/k8s/user/access-python/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-08
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多