2016-01-24 2 views
1

Я на W8 машине, где я использую Python (Anaconda распределения) для подключения к Impala в нашем Hadoop кластера с использованием пакета Impyla. Наш кластер hadoop защищен с помощью Kerberos. Я выполнил команду API REFERENCE, как настроить соединение.Подключение к Impala с помощью impyla клиента с Kerberos аутентификации

from impala.dbapi import connect 
    conn = connect(host='localhost', port=21050, auth_mechanism='GSSAPI', 
       kerberos_service_name='impala') 

Мы используем Kerberos GSSAPI с SASL

auth_mechanism='GSSAPI' 

мне удалось установить библиотеку питон-SASL для Win8, но до сих пор я сталкиваюсь эту ошибку.

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',) 

Интересно, не пропал ли я еще какие-то зависимости.

+0

Если 'kerberos_service_name' фактически означает сервис принципала Kerberos, это должно быть что-то вроде«impala/[email protected]»с тем же Realm, на который ссылается в вашей ** krb5.conf ** и «_HOST», работая как шутник для реального хоста, к которому вы подключаетесь. –

+0

И я сильно сомневаюсь, что Impala работает на вашем ПК, поэтому «localhost» - это шутка. –

+0

Если вы столкнулись с аналогичной ошибкой из puresasl, вы должны установить пакет kerberos Python (https://github.com/thobbs/pure-sasl/issues/20). –

ответ

0

Установите пакет Python kerberos, он исправит вашу проблему.

0

Для меня, установка этого пакета фиксируется его: libsasl2-модули-GSSAPI-мит

1

Для меня следующие параметры соединения работали. Мне не нужно было устанавливать какие-либо дополнительные пакеты в python.

connect(host="your_host", port=21050, auth_mechanism='GSSAPI', timeout=100000, use_ssl=False, ca_cert=None, ldap_user=None, ldap_password=None, kerberos_service_name='impala')