2015-11-13 2 views
2

Я нахожусь на машине W7, где я использую Python (дистрибутив Anaconda) для подключения к Impala в нашем кластере Hadoop с использованием пакета Impyla. Моя компания недавно добавила Kerberos, и это закончилось тем, что я сломал то, что у меня было на месте.Python Impyla не работает после установки Kerberos

Перед Kerberos:

from impala.dbapi import connect 
conn = connect(host='localhost', port=21050) 
cur = conn.cursor() 

cur.execute('SHOW TABLES') 
cur.fetchall() 

после Kerberos

from impala.dbapi import connect 
conn = connect(host='localhost', port=21050, use_kerberos=True, 
       kerberos_service_name='impala/myservername') 

Traceback (most recent call last): 

    File "<ipython-input-13-068c7348729f>", line 2, in <module> 
    kerberos_service_name='impala/myservername') 

    File "C:\Users\x\AppData\Local\Continuum\Anaconda\lib\site-packages\impala\dbapi\__init__.py", line 47, in connect 
    ldap_password, use_kerberos, kerberos_service_name) 

    File "C:\Users\x\AppData\Local\Continuum\Anaconda\lib\site-packages\impala\_rpc\hiveserver2.py", line 193, in connect_to_impala 
    use_kerberos, kerberos_service_name) 

    File "C:\Users\x\AppData\Local\Continuum\Anaconda\lib\site-packages\impala\_rpc\hiveserver2.py", line 166, in _get_transport 
    import sasl 

ImportError: No module named sasl 

Я попытался установить SASL от CMD:

>easy_install sasl 
Searching for sasl 
Reading https://pypi.python.org/simple/sasl/ 
Best match: sasl 0.1.3 
Downloading https://pypi.python.org/packages/source/s/sasl/sasl-0.1.3.tar.gz#md5 
=6db4ca3d4fb699cf126a6e6f2f516d8f 
Processing sasl-0.1.3.tar.gz 
Writing c:\users\x\appdata\local\temp\easy_install-zfqesn\sasl-0.1.3\setup 
.cfg 
Running sasl-0.1.3\setup.py -q bdist_egg --dist-dir c:\users\x\appdata\loc 
al\temp\easy_install-zfqesn\sasl-0.1.3\egg-dist-tmp-cl0non 
sasl/saslwrapper.cpp:21:23: fatal error: sasl/sasl.h: No such file or directory 
compilation terminated. 
error: Setup script exited with error: command 'C:\\Users\\x\\AppData\\Loc 
al\\Continuum\\Anaconda\\Scripts\\gcc.bat' failed with exit status 1 

ответ

1

Я вижу, что вы работаете в Windows. Вы используете cygwin или какой-нибудь другой python?

Вы пробовали:

  1. При использовании Cygwin, вы пробовали устанавливать libsasl2-Devel?

  2. установка python-sasl из репозитория GIT, поскольку Cloudera, похоже, выполняет роль их jenkins environment?

    пункт установить мерзавец + https://github.com/laserson/[email protected]

Если сделать магии.

Кстати, код, который вы используете, устарел (согласно текущему мастеру GitHub).

Использование

from impala.dbapi import connect 
conn = connect(host='localhost', port=21050, auth_mechanism='GSSAPI', 
       kerberos_service_name='impala') 
Смежные вопросы