这个问题在这里很常见,有几种说法。在这个场景中,我设置了一个无身份验证的hiveserver2(nosal),它是从python开始工作的,我在python中使用impyla库来连接。当我使用直线连接时,没有办法获得工作连接。
直线结束于:
beeline> !connect jdbc:hive2://127.0.0.1:10000/default/hive
Error: Could not open client transport with JDBC Uri: jdbc:hive2://127.0.0.1:10000/default/hive: null (state=08S01,code=0)
在hiveserver2日志中,我有:
17/11/16 20:59:35 [HiveServer2-Handler-Pool: Thread-34]: ERROR 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)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
有什么想法吗?
1条答案
按热度按时间mlmc2os51#
最后,我找到了解决办法。
使用这个我可以连接到hiveserver2。另外,我使用hiveserver2进行开发,所以我在root下启动了进程,所有文件系统树都属于root。由于此选项,我需要在使用beeline登录到hiveserver2时使用root用户:
我不需要提供密码,因为根本没有身份验证。现在我可以创建数据库和表了。
“这个”将beeline与hivecli进行比较是解决这个问题的有效参考。