gpt4 book ai didi

python - 从 Python 连接 Hive 远程服务器

转载 作者:可可西里 更新时间:2023-11-01 14:52:44 24 4
gpt4 key购买 nike

我无法通过我的 python 脚本连接到远程服务器上运行的配置单元。
我正在使用相同的脚本(当然具有不同的服务器详细信息)连接到在我的本地主机上运行的配置单元并且能够连接。

我正在使用命令从命令行在本地主机上启动服务器:

hive —service hiveserver2

启动服务器并运行 python 脚本

连接到本地主机上运行的 Hive 的脚本:

import pyhs2    
conn = pyhs2.connect(host='localhost', port=10000, authMechanism='PLAIN', user='hive', password ='', database='default')
with conn.cursor() as cur:
cur.execute("show databases")
for i in cur.fetch():
print i

使用上面的代码,我能够访问本地主机上的 db@Hive。

我正在使用下面的代码连接到远程服务器,这里我不是在命令行上做任何事情来启动远程服务器。

连接到远程服务器上运行的 Hive 的脚本:

conn = pyhs2.connect(host='<my remote server Ip>', port=<port no>, authMechanism='PLAIN', user='<usernameToConnectToRemoteServer>', password ="<remoteServerPassword>"  database='default')
with conn.cursor() as cur:
cur.execute("show databases")
for i in cur.fetch():
print i

这会返回一条消息:

thrift.transport.TTransport.TTransportException: TSocket read 0 bytes.

我已尽我所能尝试通过谷歌搜索并找到解决方案,但我看到的只是连接到本地主机的示例。请帮我解决这个问题。

最佳答案

尝试通过 SSH 连接到您的远程机器,然后像下面这样连接到 hive-

import paramiko
import traceback

def hive_query_executor():
dns_name = ''
conn_obj = paramiko.SSHClient()
conn_obj.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
conn_obj.connect(dns_name, username="hadoop",
key_filename='')# or password

Hive_query="select * from abc limit 10;"
query_execute_command = 'ihive -e "' + impala_query + '"'
std_in, std_out, std_err = conn_obj.exec_command(query_execute_command)

conn_obj.close()

except:
print "Error :" + str(traceback.format_exc())
exit(0)


hive_query_executor()

关于python - 从 Python 连接 Hive 远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35958631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com