【问题标题】:TProtocolException: Missing version in readMessageBegin, old clientTProtocolException:readMessageBegin 中缺少版本,旧客户端
【发布时间】:2017-10-26 03:44:38
【问题描述】:

我尝试运行基于 thrift 0.9.0 构建的 thrift Java 客户端

您可以在此处找到代码: https://github.com/apache/hbase/blob/master/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/DemoClient.java

在类路径中,有 libthrift-0.9.0.jar 我得到了以下信息:

扫描表...

线程“主”java.security.PrivilegedActionException 中的异常: org.apache.thrift.protocol.TProtocolException:缺少版本 readMessageBegin,老客户?在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject.java:422) 在 org.apache.hadoop.hbase.thrift.DemoClient.main(DemoClient.java:81) 引起:org.apache.thrift.protocol.TProtocolException: Missing readMessageBegin 中的版本,旧客户端?在 org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:213) 在 org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) 在 org.apache.hadoop.hbase.thrift.generated.Hbase$Client.recv_getTableNames(Hbase.java:903) 在 org.apache.hadoop.hbase.thrift.generated.Hbase$Client.getTableNames(Hbase.java:891) 在 org.apache.hadoop.hbase.thrift.DemoClient.run(DemoClient.java:142) 在 org.apache.hadoop.hbase.thrift.DemoClient.access$000(DemoClient.java:56) 在 org.apache.hadoop.hbase.thrift.DemoClient$1.run(DemoClient.java:85) 在 org.apache.hadoop.hbase.thrift.DemoClient$1.run(DemoClient.java:82)

有人可以提示可能导致上述情况的原因吗?

谢谢

【问题讨论】:

    标签: java hadoop thrift


    【解决方案1】:

    版本与 hbase 不匹配。您的 hbase 客户端库比您要连接的服务器库旧。你在什么 HBase 版本下编译?

    mvn 依赖:树

    将列出项目的依赖项。

    【讨论】:

    • 如果您需要帮助,请随时发布输出。
    • DemoClient 来自与 hbase 1.1.2 构建相同的 lib 目录。很难看出客户端是如何与使用相同构建的服务器不同步的。 pom.xml 中的节俭版本是 0.9.0
    【解决方案2】:

    在将服务器从 CDH 5.3 升级到 Cloudera Hadoop 5.10 后,我遇到了类似的问题。对我来说,关键是将此属性更改为 false:

    <property>
    <name>hbase.regionserver.thrift.http</name>
    <value>false</value>
    </property>
    

    似乎在 CDH5.4.0 中添加了 HTTP 协议,我的服务器设置将此设置为 true。这与我客户端的 TBinaryProtocol 不兼容。

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 2018-02-12
      • 2021-11-08
      • 2018-09-09
      • 2021-06-26
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多