我在码头容器上使用Apache,服务正常工作,但我在使用pyhive连接到Hive时遇到了一些问题。我想用下面的代码列出使用“显示数据库”的数据库,但是我得到了以下错误:
Traceback (most recent call last):
File "hive.py", line 3, in <module>
conn = hive.Connection(host="localhost", port=10001, username="root")
File "/usr/lib/python2.7/site-packages/pyhive/hive.py", line 243, in __init__
self._transport.open()
File "/usr/lib/python2.7/site-packages/thrift_sasl/__init__.py", line 74, in open
self._trans.open()
File "/usr/lib64/python2.7/site-packages/thrift/transport/TSocket.py", line 146, in open
raise TTransportException(type=TTransportException.NOT_OPEN, message=msg)
thrift.transport.TTransport.TTransportException: Could not connect to any of [('127.0.0.1', 10001), ('::1', 10001, 0, 0)]这是我的基本代码:
from pyhive import hive
conn = hive.Connection(host="localhost", port=10001, username="root")
cursor = conn.cursor()
print(cursor.execute("SHOW DATABASES"))
conn.close()我已经尝试使用端口10000和10001进行连接,但没有成功。我在pip上使用Python2.7.5和这些模块:
PyHive
thrift-sasl
thrift
sasl发布于 2022-11-22 02:10:13
检查
解决方案
docker run -d \
-m 8G \
-p 7070:7070 \
-p 8088:8088 \
-p 50070:50070 \
-p 8032:8032 \
-p 8042:8042 \
-p 2181:2181 \
apachekylin/apache-kylin-standalone:4.0.0因此您需要添加一个外部端口映射,如下所示。
docker run -d \
-m 8G \
...
-p 10000:10000 \
apachekylin/apache-kylin-standalone:4.0.0为什么端口是10000?如果您检查Kylin的源代码,您会发现该对接者使用默认的蜂箱信任。
请再试一次。
https://stackoverflow.com/questions/74512750
复制相似问题