hbase遇到的问题汇总。

1.启动hbase之后,Hmaster老是挂掉

在这里插入图片描述
如图,我的Hbase在启动之后Hmaster总是会莫名其妙的挂掉。
首先遇到问题了之后,先是查看了hbase的日志文件查看报错信息,发现相关问题的报错信息如下图所示:
在这里插入图片描述
在这里插入图片描述
当然目前我看这些还是看不懂的,所以我就把报错信息复制进行百度,查找相关的解决方法,通过百度查找,看到好多解决方法都是说将zookeeper当中的hbase缓存清除掉或者直接删掉hdfs里面的/hbase文件。但是由于我的环境是使用的hbase自带的zookeeper,所以前面的方法貌似对我来说行不通,然后我试了删掉hdfs里面的/hbase文件,成功解决了Hmaster老是挂掉的问题。
在这里插入图片描述
但是后面我发现这个问题的根本原因并不在这儿,而是因为Hbase配置文件中的hbase.rootdir的地址有问题,这个地址应该和hadoop的配置文件当中的地址必须要是一样的。
在这里插入图片描述

2.创建表的时候老是会报错Master is initializing.

在这里插入图片描述
值得注意的是我在hbase shell里边进行测试的时候,就只有创建表的时候会报错,而其它的命令如status、list都没有问题,所以猜测应该是配置文件的问题。然后我仔细研究了一下配置文件。
在这里插入图片描述
发现配置文件上hbase.rootdir的映射是localhost,而我的系统终端显示的主机名却是cxf-virtual-machine(如下图所示:)
在这里插入图片描述
于是我就进入了/etc/hosts查看主机映射,果不其然发现我所使用的主机名映射的地址为127.0.1.1,而localhost映射的则为127.0.0.1(如下图所示:)。
在这里插入图片描述
然后我在/etc/hostname 文件中修改主机名为localhost,并删除/etc/hosts 文件中cxf-virtual-machine那一栏。然后再试一试创建表,创建成功了!
在这里插入图片描述

3.进行HbaseAPI编程的时候,运行报错java.lang.NoClassDefFoundError: org/apache/htrace/Trace和Exception in thread“main“ java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

然后就是运行hbaseAPI编程的时候报了两个找不到包的错误,而这些包在hadoop目录下./share/hadoop/common/lib中包含有,可以直接从这儿导入到项目当中。所需要导入的包如下图:
在这里插入图片描述
然后我先是导入了一个htrace-core-3.1.0-incubating.jar的包,但是还是报错找不到java.lang.NoClassDefFoundError: org/apache/htrace/Trace,网上查询可能是因为版本的问题,所以就又从网上下载了一个4.1.0版本导入到项目中,成功解决问题。最终导入的包如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于缺少所需的类库或依赖项而导致的。在这种情况下,缺少org.slf4j.LoggerFactory类。这个类是SLF4J日志框架的一部分,它提供了一个简单的日志记录接口,可以与多个日志记录实现一起使用。要解决这个问题,你需要确保你的项目中包含了SLF4J日志框架的正确版本,并且已经正确地配置了类路径。 以下是一些可能有用的解决方案: 1. 确保你的项目中包含了正确版本的SLF4J日志框架。你可以在Maven中添加以下依赖项来获取最新版本的SLF4J: ```xml <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.30</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.30</version> </dependency> ``` 2. 确保你的类路径正确配置。你需要将SLF4J日志框架的jar文件添加到你的类路径中。你可以在命令行中使用-cp选项来指定类路径,例如: ```shell java -cp path/to/slf4j.jar:path/to/your/app.jar com.yourcompany.MainClass ``` 3. 确保你的日志配置正确。你需要在你的日志配置文件中指定正确的日志记录实现。例如,如果你正在使用log4j作为你的日志记录实现,你需要在log4j.properties文件中添加以下行: ```properties log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值