【发布时间】:2018-02-12 07:15:44
【问题描述】:
我有一个扩展 HiveServer2 的自定义 Hive 服务器。我可以在 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 03:04:44 错误 TThreadPoolServer:发生 Thrift 错误 在处理消息的过程中。 org.apache.thrift.protocol.TProtocolException:缺少版本 readMessageBegin,老客户?在 org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:228) 在 org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27) 在 org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56) 在 org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
此错误与Hive - Thrift - Missing version in readMessageBegin, old client? 中报告的错误相同。但条件不同:我的认证已经设置为NOSASL,我的服务器thrift版本已经是V7了。
是否还有其他原因可能导致它被触发? (例如 JAR 地狱或 hive-site.xml 中的错误配置)
【问题讨论】:
标签: hive thrift-protocol