Hadoop1.x MapReduce 程式執行的詳細過程
1.Job類初始化JobClient例項,JobClient中生成JobTracker的RPC例項,這樣可以保持與JobTracker的通訊,JobTracker的地址和埠等都是外部配置的,透過Configuration物件讀取並且傳入。
2.JobClient提交作業。
3.JobClient生成作業目錄。
4.從本地複製 MapReduce 的作業jar檔案
5.如果DistributedCache中有需要的資料,從DistributedCache中複製這部分資料。
6.根據InputFormat例項,實現輸入資料的split,在作業目錄上生成job.split和job.splitmetainfo檔案。
7.將配置檔案寫入到作業目錄的job.xml檔案中。
8.JobClient和JobTracker通訊,提交作業。
9.JobTracker將job加入到job佇列中。
10.JobTracker的TaskScheduler(任務排程器)對job佇列進行排程。
11.TaskTracker透過心跳和JobTracker保持聯絡,JobTracker收到後根據心跳帶來的資料,判斷是否可以分配給TaskTracker Task,TaskScheduler會對Task進行分配。
12.TaskTracker啟動TaskRunner例項,在TaskRunner中啟動單獨的JVM進行Mapper執行。
13.Map端會從HDFS中讀取輸入資料,執行之後Map輸出資料先是在記憶體當中,當達到閥值後,split到硬碟上面,在此過程中如果有combiner的話要進行combiner,當然sort是肯定要進行的。
14.Map結束了,Reduce開始執行,從Map端複製資料,稱為shuffle階段,之後執行reduce輸出結果資料。
15.當jobtracker收到作業最後一個任務完成通知後,便把作業的狀態設定為“完成”。
16.在jobclient查詢狀態時,便知道任務已經完成,於是從runjob()方法返回。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30089851/viewspace-2121985/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MapReduce 執行全過程解析
- Mapreduce(二):MR的執行過程分析
- MapReduce過程詳解
- Hadoop 除錯第一個mapreduce程式過程詳細記錄總結Hadoop除錯
- 程式執行過程記憶體分析詳解記憶體
- MapReduce程式執行流程
- Java 程式執行過程Java
- 程式、執行緒詳細梳理執行緒
- Hadoop1.x MapReduce的Slot的理解Hadoop
- 一條 sql 的執行過程詳解SQL
- 程式語言執行過程
- MapReduce 過程詳解 (用WordCount作為例子)
- 淺析Java程式的執行過程Java
- SQL語句執行過程詳解SQL
- 泊松過程的詳細理解
- 程式碼精簡執行過程
- 終端下以後臺模式執行Linux程式的過程詳解模式Linux
- 一個 java 檔案的執行過程詳解Java
- 指令的執行過程
- MySQL MHA詳細搭建過程MySql
- MapReduce執行流程
- 程式執行過程中的記憶體活動記憶體
- JVM 執行緒堆疊分析過程詳解JVM執行緒
- MapReduce的執行流程概述
- sql 執行過程SQL
- nginx配置https詳細過程NginxHTTP
- Redis 命令的執行過程Redis
- HiveSQL的執行過程分析HiveSQL
- jsp的執行過程JS
- centos7安裝的詳細過程CentOS
- 原創:oracle 授權的詳細過程Oracle
- 執行緒池建立執行緒的過程執行緒
- Python程式、執行緒、協程詳解Python執行緒
- oracle 的DML命令的詳細處理過程Oracle
- 一個簡單java程式的執行全過程Java
- 通過 HelloWorld 瞭解 Java 程式執行過程以及執行時記憶體Java記憶體
- MySQL 利用xtrabackup進行增量備份詳細過程彙總MySql
- javascript引擎執行的過程的理解--執行階段JavaScript