Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 使用Kerberos身份验证thrift.transport.ttTransport.ttTransportException连接到Impala:_Python 2.7_Kerberos_Impala_Thrift Protocol - Fatal编程技术网

Python 2.7 使用Kerberos身份验证thrift.transport.ttTransport.ttTransportException连接到Impala:

Python 2.7 使用Kerberos身份验证thrift.transport.ttTransport.ttTransportException连接到Impala:,python-2.7,kerberos,impala,thrift-protocol,Python 2.7,Kerberos,Impala,Thrift Protocol,我花了很多时间试图通过python与kereberized impala服务器建立连接。使用JavaJDBC是可能的。我不认为这是kereberos的门票问题。如果我运行klist,我可以毫无问题地看到我的车票 Ticket cache: FILE:/tmp/krb5cc_4356 Default principal: xx@xx.xx.xx Valid starting Expires Service principal 05/12/18 20:17:22 05

我花了很多时间试图通过python与kereberized impala服务器建立连接。使用JavaJDBC是可能的。我不认为这是kereberos的门票问题。如果我运行klist,我可以毫无问题地看到我的车票

Ticket cache: FILE:/tmp/krb5cc_4356
Default principal: xx@xx.xx.xx
Valid starting     Expires            Service principal
05/12/18 20:17:22  05/13/18 06:17:22  krbtgt/xx.xx.xx@xx.xx.xx
        renew until 05/19/18 20:17:22
我使用自己的krb5.config文件,正如我之前所说,我可以将它与java一起使用,所以我不知道这里的问题出在哪里。 我的字符串连接:

conn = connect(host='impala/_HOST@xx.xx.xx, port=21050, auth_mechanism='GSSAPI', user='xx', password='xx', database = 'xx', kerberos_service_name='impala')
我总是遇到同样的问题:

File conexionsimple.py", line 18, in <module>     protocol=None)
  File dbapi.py", line 147, in connect  auth_mechanism=auth_mechanism)
  File hiveserver2.py", line 758, in connect  transport.open()
  File python2.7/site-packages/thrift_sasl/__init__.py", line 68, in open    self._trans.open()
  File /thrift/transport/TSocket.py", line 101, in open     message=message)
thrift.transport.TTransport.TTransportException: Could not connect to impala/_HOST@xx.xx.xx:21050
我尝试了其他的节俭版本(0.2.1),但我有同样的错误。
有什么建议吗?

主机应该只是主机名。在您的示例中,删除高达@的零件


同时删除用户和密码。Kerberos使用Kerberos票证进行身份验证

为了更全面地回答这个问题,Kerberos使impyla比impala shell更挑剔,因此hostname参数必须是运行impala的节点的完全限定域名,该节点使用Kerberos注册

例如,我的impala服务名是impala.somevalue.somedomain,这可以很好地使用impala外壳和纯文本Impyla连接。它仅在使用auth=GSSAPI时才会中断。要修复它,请确保主机是FQDN


e、 g.我在云提供商上的fqdn是ip-xxx-xxx-xxx-xxx.somevalue.somedomain,其中xxx是ip地址的八位字节。

感谢您的响应标记,但什么也没有发生。我必须使用ctr+c关闭或打印一个例外:(
python 2.7.14
thrift 0.9.3
thrift-sasl 0.3
sasl 0.2
impyla 0.14