使用此链接尝试连接到远程配置单元。下面是使用的代码。收到的错误消息也在下面给出
如何通过python访问hive?
代码
from pyhive import hive
conn = hive.Connection(host="10.111.22.11", port=10000, username="user1" ,database="default")
错误消息
Could not connect to any of [('10.111.22.11', 10000)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/anaconda3/lib/python3.6/site-packages/pyhive/hive.py", line 131, in __init__
self._transport.open()
File "/opt/anaconda3/lib/python3.6/site-packages/thrift_sasl/__init__.py", line 61, in open
self._trans.open()
File "/opt/anaconda3/lib/python3.6/site-packages/thrift/transport/TSocket.py",line 113, in open
raise TTransportException(TTransportException.NOT_OPEN, msg)
thrift.transport.TTransport.TTransportException: Could not connect to any of [('10.111.22.11', 10000)]
成功连接的其他要求是什么?我可以直接连接到服务器(使用putty)并运行hive。但是当从另一个服务器x尝试时,我得到了这个错误。我还可以从服务器x ping配置单元服务器。
端口号可能是问题所在吗?如何检查正确的端口号?
正如下面的回答中所讨论的,我尝试启动hiveserver2。但这个命令似乎不起作用。非常感谢您的帮助。
另外,当我从hiveshell执行查询时,在日志中看到的端口是8088。不知道这是否应该是端口而不是10000(两者都不起作用)
4条答案
按热度按时间hrirmatl1#
请尝试以下代码以使用pyhive访问远程配置单元表:
mw3dktmi2#
为了让pyhive工作,hiveserver2.0应该使用传输模式作为“二进制”运行。如果它是以传输为http运行的,则将其更改为“二进制”。
2w3kk1z53#
无法使用
pyhive
. 必须使用paramiko
下面是示例代码xbp102n04#
HiveServer2
进程必须在远程配置单元主机中启动。10000
是默认端口号。使用此命令启动hiveserver2。