Hbase学习中遇到的问题

Hbase安装学习中遇到问题解决

问题1

Hbase 使用启动时master时在进程中HMaster短暂的出现几秒后立即结束进程

解决方案:

最主要的原因是因为hadoop的版本问题,不同版本的hadoop的NameNode默认端口是不一样的可能是9000或者8020

Hbase中的根目录端口应该改成与hadoop的默认端口一样

  • hadoop中的默认端口
img
  • hbase配置中的根目录端口
img

问题2

启动regionserver之后,进程也是短暂出现就消失

解决方案:

通过查看hbase的regionserver日志看到,是节点时间超时了。集群之间的节点时间不同步,会导致其启动失败。因此首先推荐在hadoop中设置同步时间服务。

或者可以修改hbase属性:hbase.master.maxclockskew 设置更大的值

<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>

问题3

停止hbase服务的时候出现:

no zookeeper to stop because no pid file /tmp/hbase-root-zookeeper.pid

解决方案:由于zookeeper是由自己手动启动的关闭的,hbase无法监测其运行的状况,就不能完成对zookeeper的关闭,但是配置文件中设置由hbase关闭。

修改hbase配置文件hbase-env.sh 将HBASE_MANAGES_ZK设置为false

img

更换Hbase版本遇到的问题

问题1

由于使用的时hadoop3.x版本,与hbase1.x版本不兼容,在更换hbase2.x版本之后,在shell命令行输入命令list遇到问题:

ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
	at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2739)
	at org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:2310)
	at org.apache.hadoop.hbase.master.MasterRpcServices.disableTable(MasterRpcServices.java:802)
	at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:395)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)

报错分析:

可能由于集群中的节点时间不同步,但是通过date命令查看时间是同步的。

所以只可能是在更换hbase版本时,HDFS和Zookeeper中的Hbase没有删除,所以需要将其删除

  • 删除zookeeper下的hbase

    # 切换到zookeeper的bin目录下
    cd /opt/module/zookeeper/bin
        
    # 执行 ./zkCli.sh 命令
     ./zkCli.sh
    # 使用 deleteall /hbase 删除zookeeper中的所有 hbase的目录
     deleteall /hbase
    
  • 重启Hbase

  • 删除HDFS中的hbase目录

    #在hadoop的根目录下运行
    hadoop fs -rm -r /hase
    

    问题2

    hbase正常启动,但是在创建表命令时报错

    因为重新安装hbase时,旧的元数据信息没有删除,使用zookeeper删除后hbase元数据后重启hbase即可。
    在master主机上,进入zookeeper的bin目录,运行:

    #进入zooker客户端
    zkCli.sh -server localhost:2181
    #查看hbase下文件
    ls /hbase
    #删除元数据信息
    deleteall /hbase/meta-region-server
    
  • 关闭hbase服务,重新启动

HBase2.4.11和Hive3.1.2集成时遇到问题

首先 在启动hive之前必须通过脚本或者手动启动metastore

问题

通过bin/hive启动hive时,命令行一直刷出WARN,INFO的日志信息,并且不出现hive(default)

方式1(可以尝试一下)

经过资料查询,有人说是因为hive3.1.2和hbase 2.4.11不兼容,应该换版本低一点的hbase。但是

更换hbase版本比较麻烦,没有采用这种解决方法

方法二(成功解决)

在Hive的安装目录下的conf目录下创建log4j.properties的日志配置文件,日志等级为WARN

编辑log4j.properties:

log4j.rootLogger=WARN, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

再次启动hive,大量日志消失

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值