Подключение к kerberized hiveserver2 из api python flask
Нам требуется помощь в решении указанной ниже проблемы в Windows 10. Проблема связана с библиотекой sasl, которая является зависимостью как для pyhive, так и для impyla. когда мы пытаемся установить sasl с
pip install sasl == 0.2.1
или же
easy_install sasl
мы получили сообщение об ошибке -
"Установите инструменты сборки Microsoft Visual Studio C++ 14"
Итак, мы установили инструменты сборки C++, образ установленного пакета - инструменты сборки Visual Studio
Но мы столкнулись с этой ошибкой после установки инструментов сборки
```saslwrapper.h(22): fatal error C1083: Cannot open include file: 'sasl/sasl.h': No such file or directory"
"error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2"```
Если мы установим предварительно скомпилированное колесо sasl, мы получимTraceback:
transport.open()
File "C:\Hive_flask_setup\hive_impyla_py37\hiveapipoc\venv\lib\site-packages\thrift_sasl\__init__.py", line 85, in open
message=("Could not start SASL: %s" % self.sasl.getError()))
thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'
Фрагмент кода:
import click
from flask import Flask, jsonify
from impala.dbapi import connect
hostName='host.xxx.corp.com' #gave the original hive host name here
port=10000
database='database'#gave the required database name here
auth='GSSAPI'
userName='user'#gave the actual username here
kerberosService='hive'
class Hive(object):
def connect(self):
return connect(host=hostName,port=port,user=userName,auth_mechanism=auth,kerberos_service_name=kerberosService)
def create_app():
app = Flask(__name__)
#function for eshtablishing connection
def newConnect(query):
conn = Hive()
cur = conn.connect().cursor()
cur.execute(query)
res = cur.fetchall()
return res
# a simple query and a json response
@app.route('/')
def test_endpoint():
connectionResult = newConnect("SHOW TABLES")
return jsonify(message='Test endpoint is working!')
return app
Список установленных пакетов Python:
- bitarray == 1.5.3
- нажмите ==7.1.2
- декоратор == 4.4.2
- Flask == 1.1.2
- gssapi == 1.6.9
- Импила == 0.16.2
- itsdangerous == 1.1.0
- Jinja2 == 2.11.2
- MarkupSafe == 1.1.1
- пункт == 20.1.1
- слой ==3.11
- чистый-sasl == 0.6.2
- pysasl == 0.6.2
- sasl == 0.2.1
- setuptools == 47.1.0
- шесть ==1.15.0
- бережливость ==0.13.0
- бережливость-sasl == 0.4.2
- thriftpy2 == 0.4.11
- расширение набора == 3.7.4.3
- Werkzeug == 1.0.1
Версии:- ОС - Windows 10 - 64 бит - Python - 3.7.9