连接到 Impala Kerberos Hadoop 的问题 - Windows/Python 3.6
Posted
技术标签:
【中文标题】连接到 Impala Kerberos Hadoop 的问题 - Windows/Python 3.6【英文标题】:Issues Connecting to Impala Kerberos Hadoop - Windows/Python 3.6 【发布时间】:2019-11-20 19:20:57 【问题描述】:我进行了广泛的搜索,但没有什么对我有用。代码是这样的:
from impala.dbapi import connect
conn = connect(host = 'myhost', port = 21050, auth_mechanism = 'GSSAPI', kerberos_service_name = 'impala')
cursor = conn.cursor()
TTransportException: TTransportException(type=1, message="Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'")
尝试了以下许多不同版本,但目前这里有任何可能的相关库:
Python 3.6.9
impyla 0.14.0
纯sasl 0.6.2
pysasl 0.5.0
sasl 0.2.1
节俭 0.13.0
thrift-sasl 0.3.0
thriftpy 0.3.9
thriftpy2 0.4.8
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:我在 python 上尝试了多个库,但在尝试从 Windows 机器进行身份验证时失败。没有简单的方法。 Kerberos 库主要在 Linux 上运行。 Windows 的解决方法不起作用。那么有什么办法可以解决这个问题。 嗯……在罗马做个罗马人。试试 Python 中的 Windows 原生库。
import sys
import clr
from System.Net.Http import *
myClienthandler = HttpClientHandler()
myClienthandler.UseDefaultCredentials = True
myClient = HttpClient(myClienthandler)
x = myClient.GetStringAsync("putyourURLwithinthequoteshere")
myresult = x.Result
print(myresult)
请注意,此 python 脚本必须由有权访问您尝试访问的 URL 的用户运行。通过将UseDefaultCredentials
属性设置为True
,您将传递已登录用户的Kerberos 票证。
【讨论】:
以上是关于连接到 Impala Kerberos Hadoop 的问题 - Windows/Python 3.6的主要内容,如果未能解决你的问题,请参考以下文章
连接到 Impala Kerberos Hadoop 的问题 - Windows/Python 3.6
如何使用 impyla 连接到 impala 或使用 pyhive 连接到 hive?
使用 keytab 文件连接到 Impala 的 jdbc URL
无法使用 Impala JDBC 驱动程序通过 Java 应用程序连接到 Impala