Hadoop MapReduce Job提交後的互動日誌
通過混合 NamdeNode, DataNode, ResourceManager,NodeManager的日誌輸出, 和 提交MapReduce Job的console輸出日誌,形成時間序列上的日誌輸出。
這樣可以方便檢視從client端提交job,整個hadoop的內部互動的大致過程。
MapReduce Job的console輸出來自執行簡單編寫的例子: bin/hadoop jar hellohadoop-1.0-SNAPSHOT.jar WordCount demo out 後的輸出。
HDFS檔案中儲存job的位置在 /tmp/hadoop-yarn/staging/bruce/.staging/job_1449210909990_0001下。
可以看到檔案:
appTokens
job.jar
job.split
job.splitmetainfo
job.xml
job.split和job.splitmetainfo兩個檔案儲存了有關InputSplit的資訊。我們知道,Hadoop MapReduce將所有的輸入檔案劃分成一個一個的InputSplit(劃分規則由InputFormat的實現類定義),且為每一個InputSplit,JobTracker將分配一個task交給TaskTracker去執行map。那麼,在啟動Job之前,首先需要完成檔案劃分,這個實際上是由Client端來執行。Client完成檔案劃分後,將劃分資訊寫入job.split和job.splitmetainfo,然後寫這兩個檔案到staging dir。
接下來的問題是,為什麼需要有兩個檔案,它們分別儲存了什麼樣的資訊?如下圖所示,job.split儲存了所有劃分出來的InputSplit,而每個InputSplit記錄如下資訊:
該Split的型別(ClassName, mostly org.apache.hadoop.mapreduce.lib.input.FileSplit)
該Split所屬檔案的路徑(FilePath)
該Split在所屬檔案中的起始位置(FileOffset)
該Split的位元組長度(Length)
job.splitmetainfo儲存了有關InputSplit的後設資料:
該Split在哪些Node上是local data(Location)
該Split對應的InputSplit在job.split檔案中的位置(SplitFileOffset)
該Split的位元組長度(Length, the same as that in job.split)
job.splitmetainfo提供給JobTracker讀取。比如,根據# Split,JobTracker能知道該分配多少個Task;根據Location,JobTracker能決定將該Split對應的Task分配給哪個Node去執行(優先分配到擁有該Split local data的Node)
job.split提供給TaskTracker讀取。根據FilePath, FileOffset, Length,TaskTracker知道從哪個檔案的哪個位置開始讀取要處理的Split data。
相關文章
- Mapreduce Job提交流程原始碼和切片原始碼詳解原始碼
- Hadoop學習第四天--MapReduce提交過程Hadoop
- hadoop window 遠端提交job到叢集並執行Hadoop
- 【Hadoop篇04】Hadoop配置日誌聚集Hadoop
- Hadoop學習——MapReduceHadoop
- hadoop_MapReduce yarnHadoopYarn
- Hadoop(十四)MapReduce概述Hadoop
- SVN提交日誌模板設定
- MapReduce 示例:減少 Hadoop MapReduce 中的側連線Hadoop
- 解鎖Nginx日誌的寶藏:GoAccess——你的實時、互動式Web日誌分析神器!NginxGoWeb
- hadoop的mapreduce串聯執行Hadoop
- Hadoop面試題之MapReduceHadoop面試題
- Hadoop 專欄 - MapReduce 入門Hadoop
- MR hadoop streaming job的學習 combinerHadoop
- Hadoop的mapreduce出現問題,報錯The auxService:mapreduce_shuffle does not existHadoopUX
- yarn-per-job提交流程Yarn
- Hadoop(三)通過C#/python實現Hadoop MapReduceHadoopC#Python
- 改造xxl-job的客戶端日誌檔案生成體系客戶端
- SVN解決不能檢視最近提交日誌的問題
- Flink提交Job的方式以及引數設定
- 從分治演算法到 Hadoop MapReduce演算法Hadoop
- Hadoop學習(二)——MapReduce\Yarn架構HadoopYarn架構
- Hadoop(十九)MapReduce OutputFormat 資料壓縮HadoopORM
- Hadoop面試題總結(三)——MapReduceHadoop面試題
- OceanBase 原始碼解讀(八):事務日誌的提交和回放原始碼
- hadoop配置歷史伺服器&&配置日誌聚集Hadoop伺服器
- Hadoop之MapReduce2架構設計Hadoop架構
- 談談Hadoop MapReduce和Spark MR實現HadoopSpark
- 【Logback日誌級別】動態調整Logback的日誌級別
- MapReduce——客戶端提交任務原始碼分析客戶端原始碼
- GoAccess:一個實時的 Web 日誌分析器及互動式檢視器GoWeb
- svn 提交程式碼時強制錄入日誌設定
- 使用zabbix監控oracle的後臺日誌Oracle
- flink1.10版local模式提交job流程分析模式
- spark核心(下)——job任務提交原始碼解析Spark原始碼
- SLS 查詢新正規化:使用 SPL 對日誌進行互動式探索
- hadoop之mapreduce.input.fileinputformat.split.minsize引數HadoopORM
- Hadoop 學習系列(四)之 MapReduce 原理講解Hadoop
- Hadoop之MapReduce2基礎梳理及案例Hadoop