暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Hbase任务启停报错:no hbase master found

IT那活儿 2024-11-26
73
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!



报错分析



在HBase环境中遇到SLF4J类库冲突的问题,由于存在多个SLF4J绑定,解决方法包括修改pid文件存放路径、暴力或安全地解决进程问题,以及正确配置HMaster和HRegionServer的pid/znode文件。

1.1 报错信息
1.2 原因
系统找不到HBase的pid文件,pid文件里面是HBase的进程号,找不到进程号系统就没有办法去结束这个进程。

HBase的pid文件默认存放路径为 tmp 路径,时间久了会被操作系统删除。




解决方案



2.1 修改pid文件存放路径

进入 /opt/hbase-2.0.0/conf 目录,找到 hbase-env.sh 进行修改:
2.2 暴力解决(供测试环境使用)
直接kill掉HBase的相关进程,重启服务即可,重启之后新的pid就会在指定目录下生成。小几率会造成丢数据或者HBase无法启动的情况,但是解决问题简单、快速。
2.3 安全解决(供生产环境使用)
如果节点机器上有HMaster、HRegionServer两个进程,需要添加的文件如下:
如果节点机器上只有HRegionServer进程,需要添加的文件如下: 
第一步:在HBase未关闭的情况下再去启动HBase,使其生成pid存放目录主节点
第二步:添加hbase-root-regionserver.pid文件在包含HRegionServer的节点执行此操作
查看HRegionServer的进程号,进程号就是pid文件里面的内容,直接复制进去保存。
将进程号记下来,去/opt/hbase-2.2.7/pid目录下创建一个名为 hbase-root-regionserver.pid 的文件,将进程号5754复制进去,保存退出。
第三步:添加hbase-root-regionserver.znode文件在包含HRegionServer的节点执行此操作
进入zookeeper客户端:
去/opt/hbase-2.2.7/pid目录下创建一个名为 hbase-root-regionserver.znode 的文件,将/hbase/rs/hadoop101,16020,1691028071312(根据自己情况)复制进去,保存退出。
第四步:添加hbase-root-master.pid文件在包含HMaster的节点执行此操作
查看HRegionServer的进程号,进程号就是pid文件里面的内容,直接复制进去保存。
将进程号记下来,去/opt/hbase-2.2.7/pid目录下创建一个名为 hbase-root-master.pid 的文件,将进程号5544复制进去,保存退出。
第五步:添加hbase-root-master.znode文件在包含HMaster的节点执行此操作
去/opt/hbase-2.2.7/pid目录下创建一个名为 hbase-root-master.znode 的文件,将hadoop101,16000,1691028070097(根据自己情况)复制进去,保存退出。
hosthadoop101
port16000
startcode1691028070097(这里随便打几个数字即可,在zookeeper中没有找到这串字符,但是发现随便输入一串数字也不会报错。)

复制
第六步:重启
先关HBase;再关Hadoop;再关Zookeeper;再按照相反顺序启动即可。

END


本文作者:事业二部(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论