解决原因:
可能是hadoop和hbase下的htrace-core版本不一样导致的。
解决步骤:
今天在运行hbase实例时报错:
网上查找了很多教程,没有解决问题,在看了一篇博客是产生了一个想法,链接:http://www.blogjava.net/anchor110/articles/424888.html
上面的解决办法是:将$HADOOP_HOME/share/hadoop/common/lib下的htrace-core-3.0.4.jar复制到$HBASE_HOME/lib下。起初我以为是hbase/bin目录下缺少htrace-core-3.0.4.jar(我自己的是3.1.0)导致的,于是我查看了一下hbase/lib目录,里面有这个jar包:
我又查看了hadoop/share/hadoop/common/lib目录,发现里面也有一个htrace-core的jar包,不过版本不一样:
我运行实例导入的是hbase/lib目录下的3.1.0的版本,
运行会报错,看了前面的博客后,我想到是不是因为hadoop和hbase下的htrace-core版本不一样导致的冲突,于是我重新导入了hadoop下的那个htrace-core4-4.1.0的包
再次运行实例,这是没有报错
问题成功解决!
总结:
hbase报错java.lang.NoClassDefFoundError: org/apache/htrace/core/Tracer的解决方法因人而异,每个人的系统环境可能不一样,多尝试几种方法应该是可以解决问题的。