首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头集装箱上的Pyhive连接

码头集装箱上的Pyhive连接
EN

Stack Overflow用户
提问于 2022-11-20 23:10:59
回答 1查看 27关注 0票数 0

我在码头容器上使用Apache,服务正常工作,但我在使用pyhive连接到Hive时遇到了一些问题。我想用下面的代码列出使用“显示数据库”的数据库,但是我得到了以下错误:

代码语言:javascript
复制
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)]

这是我的基本代码:

代码语言:javascript
复制
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和这些模块:

代码语言:javascript
复制
PyHive
thrift-sasl
thrift
sasl
EN

回答 1

Stack Overflow用户

发布于 2022-11-22 02:10:13

检查

  1. 您正在使用的Kylin的哪个停靠版本?
  2. 您可能需要检查命令才能启动Kylin。港口对码头开放吗?

解决方案

  1. 停靠者打开一些端口必须与官方网站命令如下:

代码语言:javascript
复制
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

因此您需要添加一个外部端口映射,如下所示。

代码语言:javascript
复制
docker run -d \
-m 8G \
...

-p 10000:10000 \ 

apachekylin/apache-kylin-standalone:4.0.0

为什么端口是10000?如果您检查Kylin的源代码,您会发现该对接者使用默认的蜂箱信任。

请再试一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74512750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档