HBase版本匹配问题:HBase-0.90.4与Hadoop-0.20.203.0

转自:http://javoft.net/2011/09/hbase-hmaster-%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8-call-to-failed-on-local-exception/


前提是HBase-0.90.4与Hadoop-0.20.203.0

以下两行红字可以解决HBase与Hadoop的连接问题(连接需要一致性的版本)

最近打算试试Hbase,Hadoop是前几天已经装好的,三台虚拟机(机房老师看到说:“你还真敢玩”)

hadoop 版本0.20.203.0

hbase版本0.90.4

hbase按照网上文档配置完成以后总是出现(master的log文件里面)

java.io.IOException: Call to <host:port> failed on local exception

很多人说是版本问题,
我的hadoop版本是0.20.203.0,网上说版本问题多是0.21 hadoop,0.20的出问题的不多,
有人还说说是因为HIVE_HOME 下的hbase jar包和当前hbase的版本不符引起的(这比较扯,我的hive完全没有运行,两者肯定没有关系),
后来把hbase_home/lib(启动的时候会加载里面所有jar) 下的hadoop-core-0.20-append-r1056497.jar rm 掉,再cp hadoop_home下的hadoop-core-0.20.203.0.jar到lib中,
满心期待的start-hbase.sh,还是没启动起来,再次失望了(我这看国足的人,失望是常事,没什么!!),这时候开始怀疑:难道不是网上所说的版本问题?


开始继续搜索,无果,全都说是版本问题,静下来认真看看hbase的master log吧,log中写道:

2011-08-31 18:15:20,351 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration

现在NoClassDefFoundError,缺少 org/apache/commons/configuration/Configuration 果断给他加一个commons-configuration包试试,
从hadoop_home/lib下面cp一个commons-configuration-1.6.jar到hbase_home/lib下,

回忆刚才rm掉的包是 hadoop-core-0.20-append-r1056497.jar.难道它append org/apache/commons/configuration/Configuration 在包里面了,查看一下,并没有多余的类,也就是说即使版本没问题同样会有NoClassDefFoundError,
再次start-hbase.sh,jps一下,HMaster 出现,此问题搞定。内牛满面

************************************************************分割线**************************************************

貌似,第一行红字,可以解决匹配问题,但缺少一个包,所以再补充一个包

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