Hbase的Hmaster配置

本文介绍了HBase的HMaster高可用(HA)配置过程,包括配置文件中的关键参数设置,如hbase.rootdir、hbase.cluster.distributed、hbase.master等。启动HBase集群后,在另一台服务器上启动备用HMaster,并通过16010界面验证备用Master的存在。当主Master被停止时,系统能够进行自动容错切换。通过jps命令检查进程确认配置成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hbase的Hmaster配置HA相比Hadoop的NameNode和ResourceManager的HA来说,比较简单,几乎不用配置什么:


Xml代码 复制代码  收藏代码
  1. <configuration>  
  2.   <property>  
  3.       <name>hbase.rootdir</name>  
  4.       <value>hdfs://ns1/hbase</value><!--这里必须跟core-site.xml中的配置一样-->  
  5.   </property>  
  6.   <!-- 开启分布式模式 -->  
  7.   <property>  
  8.   <name>hbase.cluster.distributed</name>  
  9.    <value>true</value>  
  10.   </property>  
  11.  <property>  
  12.         <name>hbase.zookeeper.property.clientPort</name>  
  13.         <value>2181</value>  
  14.     </property>  
  15.   <!--    这里是对的,只配置端口,为了配置多个HMaster -->  
  16.    <property>  
  17.    <name>hbase.master</name>  
  18.    <value>60000</value>  
  19.    </property>  
  20.      <property>  
  21.      <name>hbase.tmp.dir</name>  
  22.      <value>/ROOT/server/hbase/hbasetmp</value>  
  23.          </property>  
  24. <!-- Hbase的外置zk集群时,使用下面的zk端口 -->  
  25.      <property>  
  26.      <name>hbase.zookeeper.quorum</name>  
  27.      <value>h1,h2,h3</value>  
  28.      </property>  
  29.         <property>  
  30.                 <name>hbase.regionserver.lease.period</name>  
  31.                 <value>120000</value>  
  32.         </property>  
  33. </configuration>  
<configuration>
  <property>
      <name>hbase.rootdir</name>
      <value>hdfs://ns1/hbase</value><!--这里必须跟core-site.xml中的配置一样-->
  </property>
  <!-- 开启分布式模式 -->
  <property>
  <name>hbase.cluster.distributed</name>
   <value>true</value>
  </property>
 <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
  <!--    这里是对的,只配置端口,为了配置多个HMaster -->
   <property>
   <name>hbase.master</name>
   <value>60000</value>
   </property>
     <property>
     <name>hbase.tmp.dir</name>
     <value>/ROOT/server/hbase/hbasetmp</value>
         </property>
<!-- Hbase的外置zk集群时,使用下面的zk端口 -->
     <property>
     <name>hbase.zookeeper.quorum</name>
     <value>h1,h2,h3</value>
     </property>
        <property>
                <name>hbase.regionserver.lease.period</name>
                <value>120000</value>
        </property>
</configuration>




完毕后,执行start-hbase.sh 启动Hbase集群,然后在第二台Hmaster上
执行hbase-daemon.sh start master,如果启动成功,则可以在16010界面上
看到备用的master,一切正常之后,可以kill掉主master,测试自动容错.







使用jps命令查看两台master的进程,分别如下:

Java代码 复制代码  收藏代码
  1. [webmaster@Hadoop-0-187 ~]$ jps  
  2. 20449 JobHistoryServer  
  3. 27295 Jps  
  4. 14204 DataNode  
  5. 20209 NameNode  
  6. 17328 ResourceManager  
  7. 3310 QuorumPeerMain  
  8. 19329 HMaster  
  9. 13827 DFSZKFailoverController  
  10. 15474 NodeManager  
  11. 14409 JournalNode  
  12. [webmaster@Hadoop-0-187 ~]$   
[webmaster@Hadoop-0-187 ~]$ jps
20449 JobHistoryServer
27295 Jps
14204 DataNode
20209 NameNode
17328 ResourceManager
3310 QuorumPeerMain
19329 HMaster
13827 DFSZKFailoverController
15474 NodeManager
14409 JournalNode
[webmaster@Hadoop-0-187 ~]$ 



Java代码 复制代码  收藏代码
  1. [webmaster@Hadoop-0-186 ~]$ jps  
  2. 30300 JournalNode  
  3. 30789 NodeManager  
  4. 582 HMaster  
  5. 30203 DataNode  
  6. 3683 Jps  
  7. 30127 NameNode  
  8. 31256 ResourceManager  
  9. 2396 QuorumPeerMain  
  10. 29987 DFSZKFailoverController  
  11. 32745 HRegionServer  
  12. [webmaster@Hadoop-0-186 ~]$   
[webmaster@Hadoop-0-186 ~]$ jps
30300 JournalNode
30789 NodeManager
582 HMaster
30203 DataNode
3683 Jps
30127 NameNode
31256 ResourceManager
2396 QuorumPeerMain
29987 DFSZKFailoverController
32745 HRegionServer
[webmaster@Hadoop-0-186 ~]$ 



代表配置成功!

### 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、付费专栏及课程。

余额充值