Hbase中Hmaster启动失败的原因

原文链接:https://blog.csdn.net/a308601801/article/details/87465074

在启动 Hbase 后,发现没有 Hmaster 进程的现象,

并且导致 Hbase shell 启动后操作报 Can’t get master address from ZooKeeper; znode data == null 的错误

以及停止 Hbase 时出现 stopping hbasecat: /tmp/hbase-xxxxx-master.pid: 没有那个文件或目录 的错误

于是就开始寻找启动失败的原因, 最有效的方法是仔细检查 logs 下的报错日志

1.没有找到 /tmp/hbase-xxxxx-master.pid 文件

hbase 默认注释掉 HBASE_PID_DIR,而 hbase 默认把 pid 文件放在 /tmp 临时目录下, 这个目录可能会被系统删除等原因无法找到, 解决办法是把 hbase/conf/hbase-env.sh 中的 HBASE_PID_DIR 属性打开修改为非临时路径, 例如 opt/module/hbase/pids, 然后重启 zookeeper 和 Hbase 即可

2.zookeeper /hbase 节点的历史数据不匹配

需要删除 zookeeper 节点上的 hbase 数据, 以及 zookeeper 根目录下的 hbase 数据目录

zkCli.sh -server master:2181
ls /
[/hbase , /zookeeper]
rmr /hbase

删除 zookeeper 根目录下的 hbase

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HBase 2.4 ,HMaster 启动 Meta 分配的过程主要涉及到以下几个类: 1. HMaster 类:HMasterHBase 的主节点,负责协调和管理整个集群。在 HMaster 启动时,会调用 assignMeta() 方法来启动 Meta 分配的过程。 2. MetaAssignmentManager 类:MetaAssignmentManager 是 HBase 负责 Meta 分配的管理器,在 HMaster 有一个单例的 MetaAssignmentManager 实例。在 assignMeta() 方法,HMaster 会调用 MetaAssignmentManager 的 assign() 方法来进行 Meta 分配。 3. RegionPlacementMaintainer 类:RegionPlacementMaintainer 是 HBase 负责 Region 分配和负载均衡的管理器,在 MetaAssignmentManager 有一个单例的 RegionPlacementMaintainer 实例。在 assign() 方法,MetaAssignmentManager 会调用 RegionPlacementMaintainer 的 placeMetaRegion() 方法来进行 Meta 分配。 4. LoadBalancer 类:LoadBalancer 是 HBase 负责负载均衡的管理器,负责根据 RegionServer 的负载情况和网络拓扑结构等因素来进行 Region 分配和负载均衡。在 placeMetaRegion() 方法,RegionPlacementMaintainer 会调用 LoadBalancer 的 balanceCluster() 方法来进行负载均衡,并选择一个合适的 RegionServer 来分配 Meta 节点。 5. AssignmentManager 类:AssignmentManager 是 HBase 负责 Region 分配和管理的管理器,在 HMaster 有一个单例的 AssignmentManager 实例。在 placeMetaRegion() 方法,RegionPlacementMaintainer 会调用 AssignmentManager 的 assign() 方法来将 Meta 节点分配给一个 RegionServer。 综上所述,HMaster 启动 Meta 分配的调用过程主要涉及到 HMaster、MetaAssignmentManager、RegionPlacementMaintainer、LoadBalancer 和 AssignmentManager 等类的协作。其,HMaster 负责启动 Meta 分配的过程,MetaAssignmentManager 负责 Meta 分配的管理,RegionPlacementMaintainer 负责选择合适的 RegionServer 进行 Meta 分配,LoadBalancer 负责进行负载均衡,AssignmentManager 负责将 Meta 节点分配给一个 RegionServer。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值