hbase probuf版本不一致问题的解决

我的环境;

hbase 0.94.11

hadoop 2.2.0



使用官网下载的hadoop和hbase进行安装的时候,hbase会报错:

 java.lang.VerifyError: class org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$AppendRequestProto overrides final method getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet;

 

错误种类有很多种,根据不同的操作回报不同的错,关键词就是 proto;

其实就是lib下有一个jar包版本不一致引起的,protobuf jar包是大名鼎鼎的Google开发的开源包,据说很牛X,但是令人无法理解的是hadoop和hbase这两个依存性特别大的东西竟然在他们的所有版本中使用的probuf版本都不一样,真不明白怎么想的

 

在hadoop的 $HADOOP_PREFIX/share/hadoop/common/lib下可以找到这个包,版本是protobuf-java-2.5.0.jar

同样我们可以在$HBASE_HOME/lib下找到hbase使用的包,版本是protobuf-java-0.4.0a.jar

问题找到了,只要把hadoop的新版本jar包考到hbase的lib下,替换原来的即可

你可能感兴趣的:(hadoop,Google,hbase)