使用此链接尝试连接到远程蜂箱。下面是使用的代码。收到的错误消息也在下面给出。
How to Access Hive via Python?
代码
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平蜂箱服务器。
港口号会不会是问题所在?如何检查正确的端口号?
正如在下面的答案中所讨论的,我尝试启动hiveserver2。但这个命令似乎不起作用。任何帮助都是非常感谢的。
另外,当我从hive执行查询时,我在日志中看到的端口是8088。想知道这是否应该是端口,而不是10000(这两个端口都没有工作)
发布于 2017-07-05 07:50:03
无法使用pyhive使其工作。必须在下面的示例代码中使用paramiko
import os
import paramiko
import time
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.load_host_keys(os.path.expanduser(os.path.join("~", ".ssh", "known_hosts")))
ssh.connect('1.1.1.1', username='uid', password='pwd')
sshin, sshout, ssherr= ssh.exec_command('hive -e "create table test(key varchar(10),keyval varchar(200))"')发布于 2017-05-17 18:01:02
HiveServer2进程必须在远程Hive主机中启动。10000是默认端口号。
使用此命令启动HiveServer2。
$HIVE_HOME/bin/hiveserver2 发布于 2019-09-18 08:31:45
为了使PyHive工作,HiveServer2.0应该使用传输模式作为“二进制”运行。如果它与传输一起运行,则将其更改为“二进制”。
https://stackoverflow.com/questions/44027519
复制相似问题