首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复“readMessageBegin中缺少的版本,老客户端?”连接到Cloudera Hive 1.1.0>时

如何修复“readMessageBegin中缺少的版本,老客户端?”连接到Cloudera Hive 1.1.0>时
EN

Stack Overflow用户
提问于 2017-09-04 04:54:27
回答 1查看 3.9K关注 0票数 2

我有一个自定义的Hive服务器来扩展HiveServer2。我可以使用CDH5中的下列参数启动它:

代码语言:javascript
复制
  --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中的不正确配置)

EN

回答 1

Stack Overflow用户

发布于 2017-10-06 06:49:14

两天前我也面临着同样的问题,我相信这里的问题是您正在以不同的传输模式启动服务器和客户端。尝试将这些属性放入hive-site.xml中。

代码语言:javascript
复制
  <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>

然后开始你的亚稳态:

代码语言:javascript
复制
nohup bin/hive --service metastore &

启动您的hiveserver2

代码语言:javascript
复制
hive --service hiveserver2 --hiveconf hive.server2.thrift.port=10001 --hiveconf hive.root.logger=INFO,console

然后从直线连接:

代码语言:javascript
复制
!connect jdbc:hive2://localhost:10001/hive;transportMode=http;httpPath=cliservice

您将连接到: Apache。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46030458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档