1. 程式人生 > >hadoop心跳機制

hadoop心跳機制

主節點和從節點之間的通訊是通過心跳機制(心跳實際上是一個RPC函式)實現的
所謂“心跳”是一種形象化描述,指的是持續的按照一定頻率在執行,類似於心臟在永無休止的跳動。

心跳機制:

1) master啟動的時候,會開啟一個RPC server
2) slave啟動時進行連線master,並每隔3秒鐘主動向master傳送一個“心跳”
   將自己的狀態資訊告訴master,然後master通過這個心跳的返回值,向slave節點傳達指令。

HDFS:

DataNode----->NameNode   3s 本地磁碟上block塊的使用情況     1h block的report
當長時間沒有傳送心跳時,NameNode就判斷DataNode的連線已經中斷,不能繼續工作了
就把他定性為”dead node”。NameNode會檢查dead node中的副本資料,複製到其他的data node中。

YARN:

NodeManager----->ResourceManager    3s 本節點上cpu 記憶體.....
ApplicationMaster----->ResourceManager  申請資源,返還資源

MapReduce:

TaskTracker----->JobTracker  彙報節點和任務執行狀態資訊
    1、判斷Tasktracker是否活著 
    2、及時讓Jobtracker獲取各個節點上的資源使用情況和任務執行狀態 
    3、為Tasktracker分配任務 

注意:
    Jobtracker與Tasktracker之間採用了Pull(拉)而不是Push(推)模型
    Jobtracker不會主動向Tasktracker傳送任何資訊,而是由Tasktracker主動通過心跳領取屬於自己的資訊
    Jobtracker只能通過心跳應答的形式為各個Tasktracker分配任務
    Tasktracker週期性的呼叫RPC函式heartbeat向Jobtracker彙報資訊和領取任務