hadoop001: zk rm(zkfc線程) nm
hadoop002: zk rm(zkfc線程) nm
hadoop003: zk nm
RMStateStore: 存儲在ZK的/rmstore目錄下
ZKFC僅僅是線程
大數據的數據是不能丟的,但是作業是可以掛的,掛了重啟即可.因此YARN的架構比較輕量級,HDFS的架構相對來說,比較重量級別.
小結:
當我們RM進程啟動后,會向ZK發一個look lck文件,寫成功的話,是active狀態,寫失敗,會是standby, rm節點會監控look文件的存在,如果不存在,就會試圖創建look文件,誰創建成功,誰就是active狀態. 同時,rm會接收client的請求,接收和監控NM的資源狀態的匯報,然后負責資源的分配和調度. 然后它(NM)會啟動和監控AM.
NM向active匯報后,還會向standby匯報呢? 不需要
ZKFC: 線程,只作為RM進程的一個線程,而非獨立的進程存在. 沒有必要搞資源的消耗
RMStateStore: 存儲在zk的/rmstore目錄下.
1. active的RM會向這個目錄寫APP信息
2. 當active RM 掛了,另外一個standby RM通過ZKFC選舉成功為active,會從/rmstore目錄讀取相應的作業信息,重新構建作業的內存信息,啟動內部的服務,開始接收NM的心跳,構建集群的資源信息,並且接受客戶端的作業提交請求
RM 進程:
1. 啟動的時候會向ZK的/rmstore目錄寫lock文件,寫成功就為active,否則,就是是tandby. RM節點ZKFC會一直監控(通過心跳)這個lock文件的是否存在,假如不存在,就為active, 否則,就為standby
22: 15 配置 http://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
2. 接收client的請求,接收和監控NM的資源狀況的匯報,負責資源的分配和調度
3. 啟動和監控我們的AM,AM是跑在NM節點的Container上.
ApplicationsManager 運行在RM中
ApplicationMaster 運行在NM中的Container容器里 作業的主程序
NM:
節點資源的管理 啟動容器運行task計算 上報資源 匯報task進度
要點:
1. ZKFC是進程還是線程? 線程, HDFS中的是進程
2. /rmstore存儲在哪里?
yarn.resourcemanager.zk-state-store.parent-path