python - невозможно подключиться к TLS1.2 с включенным HiveServer2 - PullRequest
2 голосов
/ 02 апреля 2019

У меня HiveServer2 с SSL (включен только минимальный TLS1.2) и LDAP включен, Kerberos не включен.hive.server2.transport.mode = двоичный.Соединения Beeline работают нормально, как: beeline -u jdbc:hive2://domain:10000/default\;ssl=true\;sslTrustStore=/home/user/query.jks\;trustStorePassword=blah -n user -p pass -e "SELECT * FROM table LIMIT 3"

Как и ожидалось, через beeline не передаются правильные данные доверенного хранилища или неверные учетные данные ldap, что означает, что соединение не работает.

Я хочу использовать библиотеку python дляподключиться к HiveServer2 (в частности, к этой настройке Hive с TLS1.2).

Я просмотрел несколько библиотек, таких как impyla, pyhive, pyhs2, sqlalchemy, но ни одна из них не работает для меня.Я вижу несколько вопросов, поднятых другими:

Существует множество примеров онлайн подключения без защищенного TLS1.2 экземпляра HiveServer2.

`>>> from impala.dbapi import connect

conn = connect (host = 'domain', port = 10000, use_ssl = True, auth_mechanism = 'LDAP', user = 'user', password = 'pass', ca_cert ='/home/user/query.pem') Traceback (последний вызов был последним): файл "", строка 1, в файле "/usr/local/lib/python2.7/site-packages/impala/dbapi.py"строка 147, в файле connect auth_mechanism = auth_mechanism) Файл "/usr/local/lib/python2.7/site-packages/impala/hiveserver2.py", строка 658, в файле connect transport.open () "/ usr / local/lib/python2.7/site-packages/thrift_sasl/init.py ", строка 68, в открытом файле self._trans.open ()" /usr/local/lib64/python2.7/site-packages / thrift / transport / TSSLSocket.py ", строка 118, в открытом сообщении = сообщение) thrift.transport.TTransport.TTransportException: не удалось подключиться к домену: 10000: [SSL: WRONG_VERSION_NUMBER] неправильный номер версии (_ssl.c: 726) `

...