我有一个自定义的Hive服务器来扩展HiveServer2。我可以使用CDH5中的下列参数启动它:
--hiveconf "hive.server2.authentication=NOSASL" \
--hiveconf "hive.metastore.local=true" \
--hiveconf "hive.metastore.uris=" \
--hiveconf "hive.metastore.sasl.enabled=false" \
--hiveconf "fs.hdfs.impl.disable.cache=true" \
--hiveconf "fs.file.impl.disable.cache=true" \
--hiveconf "hive.server2.authentication.kerberos.principal=$KRB_PRINCIPAL" \
--hiveconf "hive.server2.authentication.kerberos.keytab=$KRB_KEYTAB"但是,每当我尝试使用直线连接到它时,都会出现以下错误:
17/09/04 :04:44错误TThreadPoolServer:节俭错误发生在消息处理过程中。org.apache.thrift.protocol.TProtocolException:缺少readMessageBegin版本,老客户端?在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:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor( .java:617) at java.lang.Thread.run(Thread.java:745)
此错误与Hive - Thrift - Missing version in readMessageBegin, old client?中报告的错误相同。但是条件不同:我的身份验证已经设置为NOSASL,我的服务器节俭版本已经设置为V7。
还有什么其他的原因可以导致它被触发吗?(例如JAR地狱或hive-site.xml中的不正确配置)
发布于 2017-10-06 06:49:14
两天前我也面临着同样的问题,我相信这里的问题是您正在以不同的传输模式启动服务器和客户端。尝试将这些属性放入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>然后开始你的亚稳态:
nohup bin/hive --service metastore &启动您的hiveserver2
hive --service hiveserver2 --hiveconf hive.server2.thrift.port=10001 --hiveconf hive.root.logger=INFO,console然后从直线连接:
!connect jdbc:hive2://localhost:10001/hive;transportMode=http;httpPath=cliservice您将连接到: Apache。
https://stackoverflow.com/questions/46030458
复制相似问题