您的位置:首页 > 运维架构

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

2013-11-15 14:06 337 查看
我的环境;

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 hbase google