首先MapReduce是面向大數據的並行處理計算模型、離線計算框架。
一、執行流程如下:
-
Job Client:運行於Client node,負責將MapReduce程序打包成Jar包上傳到HDFS,並把Jar路徑傳遞給Job Tracker, 由於Jobtracker進行任務的分配和監控。
-
Job Tracker: 運行於Name Node,負責接收Job Client提交的Job,調度Job的每一個子Task運行於Task Tracker上,並監控它們,如果發現失敗的Task就重新運行它。
-
Task Tracker: 運行於Data Node, 負責主動於JobTracker通信,接收作業,並直接執行每一個任務。
-
HDFS:用來與其它實體間共享作業文件。
上圖的執行流程分別是:
1.Job Client 通過RPC協議向JobTracker請求一個新的應用ID,用於MapReduce作業的ID;
2.Job Tracker檢查作業的輸出說明。例如,如果沒有指定輸出目錄或目錄已存在,作業就不提交,錯誤拋回給Job Client,否則,返回新的作業ID,給Job Client;
3.Job Client將作業所需的資源(包括作業JAR文件、配置文件和計算所得輸入分片)復到以及作業ID命名的HDFS目錄中。