我尝试运行一个针对 thrift 0.9.0 构建的 thrift 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/