首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Kerberos auth使用impyla客户端连接到Impala

用Kerberos auth使用impyla客户端连接到Impala
EN

Stack Overflow用户
提问于 2016-01-24 15:27:03
回答 7查看 26.2K关注 0票数 6

我在一台W8机器上,使用Python (Anaconda分发版)使用Impyla包连接到Hadoop集群中的Impala。我们的hadoop集群是通过Kerberos来保护的。我遵循了API参考如何配置连接。

代码语言:javascript
复制
    from impala.dbapi import connect
    conn = connect( host='localhost', port=21050, auth_mechanism='GSSAPI',
               kerberos_service_name='impala')

我们在SASL中使用Kerberos GSSAPI

代码语言:javascript
复制
auth_mechanism='GSSAPI'

我已经成功地为WIN8安装了python库,但是仍然遇到了这个错误。

代码语言:javascript
复制
Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found (code THRIFTTRANSPORT): TTransportException('Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found',)

我想知道我是否还缺少一些依赖项。

EN

回答 7

Stack Overflow用户

发布于 2017-06-21 16:11:08

安装kerberos软件包,它将修复您的问题。

票数 3
EN

Stack Overflow用户

发布于 2019-08-03 18:39:06

我遇到了同样的问题,但我通过安装所需库的正确版本来修复它。

使用pip安装下面的python库:

代码语言:javascript
复制
six==1.12.0
bit_array==0.1.0
thrift==0.9.3
thrift_sasl==0.2.1
sasl==0.2.1
impyla==0.13.8

下面的代码在python版本2.73.4中运行得很好。

代码语言:javascript
复制
import ssl
from impala.dbapi import connect
import os
os.system("kinit")
conn = connect(host='hostname.io', port=21050, use_ssl=True, database='default', user='urusername', kerberos_service_name='impala', auth_mechanism = 'GSSAPI')
cur = conn.cursor()
cur.execute('SHOW DATABASES;')
result=cur.fetchall()
for data in result:
    print (data) 
票数 3
EN

Stack Overflow用户

发布于 2017-08-17 17:58:43

对我来说,安装这个软件包修复了它:libsasl2-modules-gssapi-mit

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34977562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档