Hbase中Hmaster启动失败的原因

在启动 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 数据目录下除了 myid 以外的文件, 是 conf/hbase-site.xml 中的 hbase.zookeeper.property.dataDir 属性值

重启 zookeeper 和 Hbase 即可

3.时钟不同步, 超过了默认的30秒限制或自己设定的时间

4.zookeeper 出问题了

5.hdfs 和 hbase 配置的端口不匹配
HBase/conf/
core-site.xml hdfs://master 要与
hbase-site.xml 文件中 hbase-rootdir hdfs://master:9000/hbase 相同

最后成功启动了

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值