Hbase HMaster启动问题

本文记录了HBase启动过程中遇到的问题及解决方案,包括HMaster异常关闭、元数据表hbase:meta不可用、日志分割失败等问题,并给出了具体的操作步骤。
部署运行你感兴趣的模型镜像

一、启动HBase

      在Namenode节点上执行start-hbase.sh后,HMaster启动了,但是过几秒钟就挂了,

      查看日志报错:

    [master:master:60000] catalog.CatalogTracker: Failed verification of hbase:meta,,1 at address=node3,60020,1409104234032, exception=org.apache.hadoop.hbase.NotServingRegionException: org.apache.hadoop.hbase.NotServingRegionException: Region hbase:meta,,1 is not online

        at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionByEncodedName(HRegionServer.java:2612)

        at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegion(HRegionServer.java:4003)

        at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionInfo(HRegionServer.java:3395)

        at org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:20036)

        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2185)

        at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1889)

 master.HMaster: Unhandled exception. Starting shutdown.

org.apache.hadoop.hbase.TableExistsException: hbase:namespace

        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.prepare(CreateTableHandler.java:120)

        at org.apache.hadoop.hbase.master.TableNamespaceManager.createNamespaceTable(TableNamespaceManager.java:230)

        at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:85)

        at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:1060)

        at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:921)

        at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:607)

        at java.lang.Thread.run(Thread.java:745)

[main-EventThread] wal.HLogSplitter: Archived processed log hdfs://master:9000/hbase/WALs/node4,60020,1409104233517-splitting/node4%2C60020%2C1409104233517.1409104239901 to hdfs://master:9000/hbase/oldWALs/node4%2C60020%2C1409104233517.1409104239901

2014-08-27 13:44:30,805 WARN  [MASTER_SERVER_OPERATIONS-master:60000-1] master.SplitLogManager: Stopped while waiting for log splits to be completed

2014-08-27 13:44:30,806 WARN  [MASTER_SERVER_OPERATIONS-master:60000-1] master.SplitLogManager: error while splitting logs in [hdfs://master:9000/hbase/WALs/node1,60020,1409104233856-splitting] installed = 1 but only 0 done

java.io.IOException: failed log splitting for node1,60020,1409104233856, will retry

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.resubmit(ServerShutdownHandler.java:326)

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:206)

        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

Caused by: java.io.IOException: error or interrupted while splitting logs in [hdfs://master:9000/hbase/WALs/node1,60020,1409104233856-splitting] Task = installed = 1 done = 0 error = 0

        at org.apache.hadoop.hbase.master.SplitLogManager.splitLogDistributed(SplitLogManager.java:362)

        at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:409)

        at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:383)

        at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:281)

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:199)

        ... 4 more

2014-08-27 13:44:30,808 INFO  [main-EventThread] master.SplitLogManager: Done splitting /hbase/splitWAL/WALs%2Fnode4%2C60020%2C1409104233517-splitting%2Fnode4%252C60020%252C1409104233517.1409104239901

2014-08-27 13:44:30,807 ERROR [MASTER_SERVER_OPERATIONS-master:60000-4] executor.EventHandler: Caught throwable while processing event M_SERVER_SHUTDOWN

java.io.IOException: Server is stopped

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:187)

        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

2014-08-27 13:44:30,817 ERROR [MASTER_SERVER_OPERATIONS-master:60000-2] executor.EventHandler: Caught throwable while processing event M_SERVER_SHUTDOWN

java.io.IOException: failed log splitting for node3,60020,1409104234032, will retry

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.resubmit(ServerShutdownHandler.java:326)

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:206)

        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

Caused by: java.io.IOException: error or interrupted while splitting logs in [hdfs://master:9000/hbase/WALs/node3,60020,1409104234032-splitting] Task = installed = 1 done = 0 error = 0

        at org.apache.hadoop.hbase.master.SplitLogManager.splitLogDistributed(SplitLogManager.java:362)

        at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:409)

        at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:383)

        at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:281)

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:199)

        ... 4 more

2014-08-27 13:44:30,817 DEBUG [MASTER_SERVER_OPERATIONS-master:60000-0] master.DeadServer: Finished processing node3,60020,1409104234032

2014-08-27 13:44:30,818 ERROR [MASTER_SERVER_OPERATIONS-master:60000-0] executor.EventHandler: Caught throwable while processing event M_SERVER_SHUTDOWN

java.io.IOException: Server is stopped

        at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:187)

        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

2014-08-27 13:44:30,859 INFO  [main-EventThread] master.SplitLogManager: task /hbase/splitWAL/WALs%2Fnode1%2C60020%2C1409104233856-splitting%2Fnode1%252C60020%252C1409104233856.1409104237844 entered state: DONE node3,60020,1409118244326

2014-08-27 13:44:31,001 ERROR [main] master.HMasterCommandLine: Master exiting

java.lang.RuntimeException: HMaster Aborted

        at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:192)

        at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:134)

        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

        at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)

        at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2799)

解决办法:

1.系统防火墙开启后主机ip对应主机名解析有问题,需要删除Hbase 的tmp文件夹重启(每个节点都要操作)

   将/etc/hosts中的127.0.0.1 psyDebian删除(从节点对应也删除)后程序运行正常。接着尝试运行HBase,没有出现问题!创建表也正常了!

    一开始也知道得删除hosts文件中127.0.1.1,但是没想到127.0.0.1 主机名也得删除。

2.hadoop 集群进入了safe model 模式,需要执行hadoop dfsadmin -safemode leave退出安全模式

3.存储在Hbase的数据有丢失,需要利用hadoop的回收站的机制恢复数据,或者删除HBase的数据


您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### HBase HMaster 启动失败的原因分析与解决方案 HBase 的 Master 节点(HMaster)负责管理表元数据以及协调 RegionServer 工作。如果 HMaster 无法正常启动,通常会涉及配置错误、依赖服务异常或其他环境问题。 #### 可能原因及对应解决方法: 1. **ZooKeeper 集群不可用** 如果 ZooKeeper 集群未运行或者配置不正确,则可能导致 HMaster 初始化失败。确认 ZooKeeper 是否正在运行并检查 `hbase-site.xml` 中的配置项是否指向正确的 ZooKeeper 地址[^1]。 ```xml <property> <name>hbase.zookeeper.quorum</name> <value>zk1,zk2,zk3</value> </property> ``` 2. **HDFS 文件系统不可访问** HBase 使用 HDFS 存储其文件,因此 HDFS 不可用也会导致 HMaster 启动失败。验证 NameNode 和 DataNode 运行状态,并确保 `/hbase` 目录存在且权限设置正确。 3. **端口冲突或防火墙阻止** 默认情况下,HMaster 绑定到特定端口 (如 16000),如果有其他进程占用了这些端口或将它们屏蔽掉,那么 HMaster 就不会成功绑定。通过 netstat 或 lsof 命令查看是否有占用情况发生;另外调整安全组规则允许必要的通信流量进入主机上相应端口中去[^2]。 4. **日志中的具体错误信息** 查看 HMaster 日志文件可以获取更详细的错误描述。“at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2120)” 提供了一个堆栈跟踪位置提示,在此路径下寻找更多上下文可以帮助定位确切的问题所在。 5. **Java 版本兼容性** 确认所使用的 JDK 版本满足当前版本 HBase 所需最低要求。某些功能可能仅支持较新的 Java 发布版,而旧版可能会引起未知行为甚至崩溃现象出现。 以下是重新尝试启动前应执行的一些基本操作命令示例: ```bash # 检查 zookeeper status echo ruok | nc localhost 2181 # 列出 hdfs 上 /hbase meta data dir contents hdfs dfs -ls /hbase # 显示 master log tail end part content tail -n 100 $LOG_DIR/hbase-hadoop-master-*.log ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值