【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
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 被刪除。
------------------------------------------------
目前只研究或者理解到這裡,如有錯誤,請各位朋友指正。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-715469/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Failed to start Master instance in admin modeAIAST
- Thread的run()與start()的區別thread
- MySQL主從同步報Client requested master to start replication from positionMySql主從同步clientAST
- crsctl start/stop crs and crsctl start/stop cluster 區別
- show master logs 和 show master status 區別AST
- (轉載)git pull origin master與git pull --rebase origin master的區別GitAST
- rac中 crsctl start/stop crs and crsctl start/stop cluster 區別
- MySQL 5.7複製報錯Client requested master to start replication from impossibleMySqlclientAST
- docker run 與docker start的區別,為容器命名Docker
- 在Git中,origin / master與origin master之間有什麼區別?GitAST
- Mongodb的master-slave模式與master-master模式實驗MongoDBAST模式
- git merge origin master git merge origin/master區別GitAST
- MySQL Master/Slave Master/MasterMySqlAST
- docker-compose up start restart區別DockerREST
- why app_start startAPP
- fast_start_parallel_rollback與v$fast_start_servers和v$fast_start_transactionsASTParallelServer
- ! [rejected] master -> master (fetch first)AST
- Mysql5.6 Master+MasterMySqlAST
- HBase啟動,出現 master.TableNamespaceManager: Namespace table not foundASTnamespace
- (轉)hbase master掛掉-zookeeper連線超時原因AST
- Hbase master gone 系統崩潰. 遭遇 hbase bug 以及對應的解決方案.ASTGo
- Keepalived中Master和Backup角色選舉策略薦AST
- hive與hbase的聯絡與區別Hive
- A New Start
- the new start
- change master 未指定master_log_fileAST
- MySql的Master/SlaveMySqlAST
- Git branching: master vs. origin/master vs. remotes/origin/masterGitASTREM
- Extract or Replicat Fail to Start (Don't Start) With No Error MessagesAIError
- java面試題之Thread的run()和start()方法有什麼區別Java面試題thread
- Unity3D指令碼中Start()和Awake()的區別對比分析Unity3D指令碼
- start with ... connect by
- LSNRCTL start error!Error
- Fast-StartAST
- start uniappAPP
- MediaRecorder start failed -19 java.lang.RuntimeException: start failedAIJavaException
- rman b14193Backup and Recovery Quick Start Guide筆記GUIIDE筆記
- git rebase masterGitAST