hbase配置hdfs后启动失败

今天按照hbase官方文档配置使用hdfs保存数据, 但是启动后jps没有找到HMaster进程, 查看日志, 发现启动regionserver时出错了, 错误如下:

ERROR [main] regionserver.HRegionServer: Failed construction RegionServer
java.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:644)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:628)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:93)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2701)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2683)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:372)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
    at org.apache.hadoop.hbase.util.CommonFSUtils.getRootDir(CommonFSUtils.java:362)

使用的版本如下:
hadoop-2.7.7
hbase-2.1.4
根据官网的数据, 这两个版本配合是完全没有问题的.

网上搜索了一下, 大概是说hbase缺少一个库文件htrace-core, 但是解决方法是很奇怪了, 有的文章写着复制hbase中的htrace-core库文件到hadoop那边, 有的写着复制hbase中的库文件到自己的lib目录下.
…emmm…一顿操作发现没能解决我的问题, 感觉一团乱麻.
把脑子找回来, 仔细思考一下, 首先日志显示hbase调用了hadoop的hdfs.DFSClient类, 然后这个类找不到htrace库里的一个方法, 那么先看一下htrace库在哪里:
hbase有一个htrace-core
lib/client-facing-thirdparty/htrace-core/htrace-core4-4.2.0-incubating.jar
hadoop那边也有几个htrace-core
…/hadoop-2.7.7/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib/htrace-core-3.1.0-incubating.jar
…/hadoop-2.7.7/share/hadoop/tools/lib/htrace-core-3.1.0-incubating.jar
…/hadoop-2.7.7/share/hadoop/hdfs/lib/htrace-core-3.1.0-incubating.jar
…/hadoop-2.7.7/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/htrace-core-3.1.0-incubating.jar
…/hadoop-2.7.7/share/hadoop/common/lib/htrace-core-3.1.0-incubating.jar
看得出来, 这两个库的版本不一样, 会不会是这个原因引起的呢?
先到maven上面看下这两个库, 结果…居然是两个不同的库
在这里插入图片描述
所以猜测是htrace-core4-4.2.0-incubating.jar并不能兼容htrace-core-3.1.0-incubating.jar
解压这两个库, 查找SamplerBuilder.class文件, 果然只在htrace-core-3.1.0找到了这个类.

现在问题就很清楚了, hbase少了一个库

cp $HADOOP_HOME/share/hadoop/common/lib/htrace-core-3.1.0-incubating.jar  $HBASE_HOME/lib/client-facing-thirdparty/

然后启动就没有问题了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值