一、hadoop 1.x結構
- HDFS:hadoop分佈式存儲系統。
- MapReduce:分佈式計算框架,包含資源管理和任務調度等(hadoop 2.x中被分離到Yarn組件)。
- API:用戶與系統交互的入口,有原生的MapReduce API,也有對Map Reduce進行封裝抽象的Pig、Hive和HBase等。
二、hadoop 1.x運行原理
1:客戶端首先向Master節點的JobTracker發送請求,JobTracker會解析請求信息判斷要處理的是什麼文件。
2–>3:JobTracker向hdfs中的NameNode發送請求,獲取文件所在的位置、名稱以及文件所對應的所有data block信息。
4:JobTracker計算處理這些data block所需要的map task和reduce task的數量,並且把這些任務加入任務隊列。
5–>6: JobTracker查看組成文件的data block所在的DataNode節點的狀態,檢查是否有空閒的map
slot或者reduce slot。如果有空閒的slot,JobTracker向DataNode的TaskTracker發起請求處理數據任務,然後TaskTracker把slot所對應的處理資源調度給map task或者reduce task,MapReduce job數據處理階段開始。TaskTracker監視任務的狀態,並把狀態發送JobTracker。7: TaskTracker瞭解到所有的task都完成時,把處理響應反饋給客戶端。
小貼士:
1、TaskTracker是以slot的形式處理本地資源,把本地資源邏輯上拆分爲一個個slot,每一個slot對應每一個task。
2、DataNode會週期性的向NameNode發送block report和節點運行狀態,因此NameNode能夠準實時的掌握hdfs集羣的的信息。
學習資料:
1、《Hadoop For Dummies》