全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1171 1
2024-06-03
使用pyhive连接hive时,python报错信息,
raceback (most recent call last):
  File "/home/coco/.local/lib/python3.10/site-packages/thrift/transport/TSocket.py", line 150, in read
    buff = self.handle.recv(sz)
ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/coco/PycharmProjects/pythonProject/bdatat_processing/test.py", line 7, in <module>
    conn=hive.Connection(host=host,port=port,username=user,database='mum_baby')
  File "/home/coco/.local/lib/python3.10/site-packages/pyhive/hive.py", line 269, in __init__
    self._transport.open()
  File "/home/coco/.local/lib/python3.10/site-packages/thrift_sasl/__init__.py", line 93, in open
    status, payload = self._recv_sasl_message()
  File "/home/coco/.local/lib/python3.10/site-packages/thrift_sasl/__init__.py", line 112, in _recv_sasl_message
    header = self._trans_read_all(5)
  File "/home/coco/.local/lib/python3.10/site-packages/thrift_sasl/__init__.py", line 210, in _trans_read_all
    return read_all(sz)
  File "/home/coco/.local/lib/python3.10/site-packages/thrift/transport/TTransport.py", line 62, in readAll
    chunk = self.read(sz - have)
  File "/home/coco/.local/lib/python3.10/site-packages/thrift/transport/TSocket.py", line 164, in read
    raise TTransportException(message="unexpected exception", inner=e)
thrift.transport.TTransport.TTransportException: unexpected exception


在hive.log当中,报错信息为
2024-06-03T10:47:33,894 ERROR [HiveServer2-Handler-Pool: Thread-42] server.TThreadPoolServer: Thrift error occurred during processing of message.
org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client?
        at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:228) ~[hive-exec-3.1.3.jar:3.1.3]
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27) ~[hive-exec-3.1.3.jar:3.1.3]
        at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56) ~[hive-service-3.1.3.jar:3.1.3]
        at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286) ~[hive-exec-3.1.3.jar:3.1.3]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_351]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_351]
        at java.lang.Thread.run(Thread.java:750) [?:1.8.0_351]



不知道要怎么解决
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2024-7-14 12:04:55
在使用 PyHive 连接 Hive 时遇到 `ConnectionResetError` 错误,通常意味着与 HiveServer2 的连接被远程主机突然关闭了。这可能是由多种原因造成的:

1. **端口或服务未开启**:确认 HiveServer2 是否正在运行,并且监听指定的端口。

2. **防火墙设置**:检查服务器上的防火墙规则,确保它允许从你的客户端 IP 地址和端口进行连接。

3. **网络问题**:可能是由于网络不稳定导致的连接中断。尝试重启网络或检查网络配置。

4. **权限问题**:你提供的用户名可能没有足够的权限访问 HiveServer2 或者认证失败。

5. **HiveServer2 的配置**:确认你的 `hive-site.xml` 文件中的配置正确,特别是 `hive.server2.thrift.bind.host` 和 `hive.server2.thrift.port` 参数。

6. **并发连接限制**:如果有很多客户端同时尝试连接到 HiveServer2,可能会达到最大连接数的限制。

为了解决这个问题,请按照以下步骤进行检查:

- 验证 HiveServer2 的状态和服务端口是否开启。
- 检查防火墙和网络设置,确保没有阻止或限制来自你的客户端 IP 地址的连接请求。
- 确认你使用了正确的用户名,并且该用户具有访问 Hive 的权限。
- 审核 `hive-site.xml` 文件中的配置参数,特别是关于绑定主机和端口的信息。
- 如果有多个客户端同时连接,检查并可能需要增加 HiveServer2 上的最大并发连接数。

如果上述建议无法解决问题,你可以尝试重启 HiveServer2 服务或相关网络组件,并再次进行测试。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群