java - TProtocolException : Missing version in readMessageBegin, 旧客户端

标签 java hadoop thrift

我尝试运行一个针对 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

classpath下有libthrift-0.9.0.jar 我得到以下信息:

scanning tables...

Exception in thread "main" java.security.PrivilegedActionException: org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client? at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.hbase.thrift.DemoClient.main(DemoClient.java:81) Caused by: org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client? at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:213) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) at org.apache.hadoop.hbase.thrift.generated.Hbase$Client.recv_getTableNames(Hbase.java:903) at org.apache.hadoop.hbase.thrift.generated.Hbase$Client.getTableNames(Hbase.java:891) at org.apache.hadoop.hbase.thrift.DemoClient.run(DemoClient.java:142) at org.apache.hadoop.hbase.thrift.DemoClient.access$000(DemoClient.java:56) at org.apache.hadoop.hbase.thrift.DemoClient$1.run(DemoClient.java:85) at org.apache.hadoop.hbase.thrift.DemoClient$1.run(DemoClient.java:82)

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

谢谢

最佳答案

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

mvn dependency:tree

将列出项目的依赖项。

关于java - TProtocolException : Missing version in readMessageBegin, 旧客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132889/

相关文章:

java - git 分支的有效 java 正则表达式模式是什么?

scala - Apache Spark 中的转换和操作

c++ - 在Thrift中,有没有一种方法可以避免生成C++ setter?

hadoop - hdfs命令:hadoop联合实现后,ls找不到文件hdfs命名空间

hadoop - 生成适当数量的 reducer 输出

cassandra - Thrift 和 CQL 3 列/行之间的区别

c# - Thrift 中缺少 "objects"是不是很尴尬?

java - float 据[] = 新浮点[j];为什么这在 java 中无效?我们不能有一个 float 类型的数组吗?

java - 如何使用 Java 找到一年中第 # 周的月份的所有周数?

java - Windows和Linux之间的路径结构不同,导致JPackage存在问题