hadoop心跳機制
阿新 • • 發佈:2019-01-05
主節點和從節點之間的通訊是通過心跳機制(心跳實際上是一個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彙報資訊和領取任務