【HBase】start master 与 start master --backup 的区别

   我们都知道hbase 集群中通常有一个master 节点,多个region server节点,为了防止HBase 集群中master的单点故障,可以向集群中添加一个slave master,这些新添加的master 会分布在不同的物理机器上,因此以最坏的情形来看,当前运行master的那台物理机down了,整个系统可以由backup的 master 来接管!

   在介绍如何添加master 节点之前,我们先了解一下在hbase集群中master是如何产生的.master 进程使用Zookeeper 来判断哪一个是当前活动的master:所有的master 竞争创建Zookeeper 中有一个专用的znode,第一个成功创建znode的成为集群中的当前活动的master ! 

   以上场景会发生在整个集群启动时,如果存在多个master 进程同时启动,则成功创建znode的成为集群中的master。所有其他未成功的节点则simply loop around  the znode并且等待master创建的znode消失,并触发重新竞争。下面的是来自《HBase: The Definitive Guide》的文章(有些疑问)

   “ The /hbase/master znode is ephemeral, (短暂 的?zookeeper 机制)and is the same kind the region servers use to

report their presence. When the master process that created the znode fails, ZooKeeper will notice the end of the session with that server and remove the znode accordingly, triggering the election process. (既然创建失败,又怎么删除?)” 

    在完全分布式hbase集群上启动master 需要满足它的配置要和集群中其他节点的配置一样。集群中的master节点通常和集群中的其他节点都共用一套配置信息。一旦你确定系统的配置信息已经配置正确,就可以执行如下语句:
./bin/hbase-daemon.sh start master

日志如下:

2012-02-01 15:39:42,552 INFO org.apache.hadoop.hbase.metrics: new MBeanInfo

2012-02-01 15:39:42,553 INFO org.apache.hadoop.hbase.metrics: new MBeanInfo

2012-02-01 15:39:42,553 INFO org.apache.hadoop.hbase.master.metrics.MasterMetrics: Initialized

2012-02-01 15:39:42,575 INFO org.apache.hadoop.hbase.master.ActiveMasterManager: Another master is the active master, rac3:60000; waiting to become the next active master

   假设集群中已经有了一个master正在运行,执行上述命令将会带来如下情况:新起来的master会等待当前的znode被删除。如果你想要在一个 以自动运行的方式(in an automated fashion )启动多个master并且指定一个特定的机器作为当前master的宿主机。可以使用如下命令:

./bin/hbase-daemon.sh start master --backup

使用 --backup 参数的启动方式,日志信息里多了红色部分:

2012-02-01 15:57:05,413 INFO org.apache.hadoop.hbase.metrics: new MBeanInfo
2012-02-01 15:57:05,413 INFO org.apache.hadoop.hbase.master.metrics.MasterMetrics: Initialized
2012-02-01 15:57:05,414 DEBUG org.apache.hadoop.hbase.master.HMaster: HMaster started in backup mode.Stalling(停转)until master znode is written.##可能意思翻译不准,就是以空闲模式等待当前的master down 机!
2012-02-01 15:57:05,425 INFO org.apache.hadoop.hbase.master.ActiveMasterManager: Another master is the active master, rac1:60000; waiting to become the next active master

   使用带--backup 参数启动的master 将会等待特定的master 进程比如: 使用start-hbase.sh  脚本启动的或者不带--backup参数的hbase-daemon.sh start master 命令启动的master 在Zookeeper中创建 /hbase/master znode。一旦特定的master 进程创建znode成功,由于现在集群中已经有了master了,所以那些以--backkup 模式启动的master则会进入一个空闲模式!

总结:

   其实两种启动方式的差别是在于对zookeeper上的master 创建的znode 的处理方式和之后进入的状态。start master是等待znode被删除,而start master --backup 是以休眠的方式等待znode 被删除。

------------------------------------------------

目前只研究或者理解到这里,如有错误,请各位朋友指正。。

时间: 2024-09-28 04:54:04

【HBase】start master 与 start master --backup 的区别的相关文章

hbase 集群启动后master 端口监听不正确

问题描述 hbase 集群启动后master 端口监听不正确 截图是在master机器上端口监听,可以看到60000.60020是监听在127.0.0.1上的 这样就导致其他的slave 机器无法访问60000.60020端口,网上说是hosts配置不正确,但是都各种修改了还是不正确,请问该如何解决

通过DUMP文件头来观察FILE OFFLINE,TABLESPACE OFFLINE,HOT BACKUP的区别(1)

oradebug dump FILE_HDRS n; alter system set set event='immediate trace FILE_HDRS LEVEL n'; N=1: The control file's entry of the data file. This appears before the string FILE  HEADER, and is not shown on the slide. It will be covered in the control f

sql server master恢复

----故障1:master有备份 1.backup database for master backup database master to disk='e:\master.bkf' with format go 2.stop mssqlserver service net stop mssqlserver 3.start sqlserver with single user mode C:\>cd C:\Program Files\Microsoft SQL Server\MSSQL.1\

Sybase master库日志管理

Sybase master 库日志满了应该如何清除呢?可以通过以下的方法对 master库进行管理,如果确实没有足够的空间了,可以考虑对 master库进行扩容操作. 1.简单的情况下 dump trans with no_log 就可以了,master库一般不会满. 1> use master 2> go 1> checkpoint 2> go 1> dump tran master with no_log 2> go 00:00000:00011:2006/02/2

Sybase的master库日志管理

Sybase master 库日志满了应该如何清除呢? 可以通过以下的方法对 master库进行管理,如果确实没有足够的空间了,可以考虑对 master库进行扩容操作. 1.简单的情况下 dump trans with no_log 就可以了,master库一般不会满. 1> use master 2> go 1> checkpoint 2> go 1> dump tran master with no_log 2> go 00:00000:00011:2006/02/

SQL Server 2008 master与msdb数据库的备份与恢复

  sql server 2005 & 2008 master与msdb数据库的备份与恢复,master与msdb数据库的备份与普通数据库一样,本文主要描述master与msdb数据库的恢复的一些个人积累. 恢复master与msdb数据库关键在于以单用户模式启动,其它并没有太大的区别. 由于系统数据库对Sql Server来说尤其重要,为了确保SQL SERVER系统的正常运行,除了日常备份用户的数据库之外,我们还需要备份系统数据库,如对Master,Model,Msdb(TempDB不需备份

MYSQL的master/slave数据同步配置的例子

我的测试环境.基本上数据是瞬间同步,希望对大家有帮助 redhat 9.0 mysql3.23.57 mysql数据同步备份 A服务器: 192.168.1.2 主服务器master B服务器: 192.168.1.3 副服务器slave A服务器设置 #mysql –u root –p mysql>GRANT FILE ON *.* TO backup@192.168.1.3 IDENTIFIED BY '1234'; mysql>\exit 上面是Master开放一个账号backup密码1

MySQL Master High Available 理论篇

一.概况 MHA 提供自动master故障转移以及在最短的时间内(10~30秒)提升slave为new master MHA 解决了切换后的数据不一致问题 所有的这些操作都是没有任何负载和影响的,并且对存在的环境不需要做任何改动,简单易用 除了failover之外,MHA还支持在线master切换,非常安全和高效,大概只需要(0.5 ~ 2秒)的阻塞写时间 MHA提供了如下功能: master自动监控,故障转移一体化(Automated master monitoring and failove

(Moose File System)HOW TO PREPARE A FAIL PROOF SOLUTION WITH A REDUNDANT MASTER?

HOW TO PREPARE A FAIL PROOF SOLUTION WITH A REDUNDANT MASTER? A redundant master functionality is right now not a built-in functionality. But this subject is for us very crucial because we know how important this is and we receive lots of requests ab