ps:發現想寫明白確實不太容易、以下會慢慢完善
hmaster啟動會先執行hmaster 建構函式,看看它都做了什麼:
初始化conf、rpcserver、isa(inetaddressserver)、servername、zookeep、rpcserver start 、metrics
如果應用security注意以下兩點:
login the zookeeper client principal (if using security)
initialize server principal (if using secure hadoop)
rpcserver start
this.rpcserver.startthreads();
包括 responder.start() 在隨後的rpc中會進一步講解 、listener.start()、初始化handler等
初始metrics,metric底層主要使用hadoop metrics
-----------------------上面建構函式end----------------
接下來執行hmaser run方法
設定monitoredtask
啟動infoserver也就是master ui
嘗試成為活動master(多個master競爭、誰先完成誰就是)
然後完成初始化,主要有以下條目:
1、初始化filesystemmanager 主要做一些檔案系統的管理,例如:rootdir tempdir 、fs
初始化splitlogmanager 、建立oldlogdir (.oldlog)
2、初始化tabledescriptors 即fstabledescriptors 表的元資料資訊,對應表目錄下的 ".tableinfo.000000000x" x隨著對錶修改而變動
3、在zk中建立儲存clusterid的znode並設定值
5、初始化servermanager
6、初始化所有基於zk的system tracker
catalogtracker 啟動 rootregiontracker 和 metanodetracker
初始化loadbalance類
初始化assignmentmanager 此類主要作用 管理執行region分配、監控關於region事務的zk事件、當master失敗時處理已經存在的regions
regionservertracker 並將zk中的regionserver加到集合中
drainingservertracker 同上
初始化 snapshotmanager
初始化 mastercoprocessorhost
startservicethread 前一篇文章中對 excutorservice有講解、這裡主要就是excutorservice的一些初始化、另外logcleaner 、
獲取archivedir (hfile archive 一般rootdir下 .archive)
初始化hfilecleaner
如果helthcheck不為空的話執行helthcheck
最後rpcserver (hbaseserver)呼叫openserver 即標記started = true 這樣就可以接收請求啦!
------------------------------
hbase啟動HMaster問題
關於啟動hbase的時候可能會出現下面的問題,我自己總結了一些解決辦法,最重要還是看日誌然後去分析,先宣告我的環境是沒有配置hadoopha。問題 cant t get master address from zookeeper znode data null 圖上的問題估計也有挺多發生,然後我看了...
HBase啟動後發現HMaster程序消失了
hbase 集群部署啟動後幾秒自動退出異常處理,1.hadoop 與 hbase 版本不相容,會導致此異常。2.log 為 org.apache.hadoop.hbase.tableexist ception hbase namespace 異常,很可能是更換了hbase的版本過後zookeeper...
啟動檔案講解
本章參考資料 stm32f4xx 中文參考手冊 第十章 中斷和事件 表 46.stm32f42 和 stm32f43 的向量表 mdk 中的幫助手冊 arm development tools 用來查詢 arm 的彙編指令和編譯器相關的指令。啟動檔案由彙編編寫,是系統上電復位後第乙個執行的程式。主要...