org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client?

    技术2022-07-16  84

    使用beeline连接到hiveserver2查看日志报错

    报错内容为:

    2020-07-02 14:39:18,655 ERROR org.apache.thrift.server.TThreadPoolServer: [HiveServer2-Handler-Pool: Thread-64]: 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:286) 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)
    我相信这里的问题是您正在使用不同的传输模式启动服务器和客户端。尝试将这些属性放在hive-site.xml中
    <property> <name>hive.server2.transport.mode</name> <value>http</value> </property> <property> <name>hive.server2.thrift.http.port</name> <value>10001</value> </property> <property> <name>hive.server2.thrift.http.path</name> <value>cliservice</value> </property>

    然后启动您的Metastore:

    nohup bin/hive --service metastore &

    启动您的hiveserver2

    hive --service hiveserver2 --hiveconf hive.server2.thrift.port=10001 --hiveconf hive.root.logger=INFO,console

    然后从beeline连接:

    !connect jdbc:hive2://localhost:10001/hive;transportMode=http;httpPath=cliservice

    您将连接到:Apache Hive。

    Processed: 0.016, SQL: 9