inputformat
將輸入的資料集切割成小資料集 inputsplits,
。此外 inputformat 中還提供乙個 recordreader 的實現, 將乙個 inputsplit 解析成 對提供給 map 函式。
預設:textinputformat
(針對文字檔案,按行將文字檔案切割成 inputsplits, 並用 linerecordreader 將 inputsplit 解析成 對,key 是行在檔案中的位置,value 是檔案中的一行)
outputformat
提供乙個 recordwriter 的實現,負責輸出最終結果
預設:textoutputformat
(用 linerecordwriter 將最終結果寫成純檔案檔案,每個 對一行,key 和 value 之間用 tab 分隔)
sequencefileoutputformat
outputkeyclass
輸出的最終結果中 key 的型別
預設:longwritable
outputvalueclass
輸出的最終結果中 value 的型別
預設:text
(將輸入的 原封不動的輸出為中間結果)
combinerclass
實現 combine 函式,將中間結果中的重複 key 做合併
預設:null
(不對中間結果中的重複 key 做合併)
reducerclass
reducer 類,實現 reduce 函式,對中間結果做合併,形成最終結果
預設:identityreducer
(將中間結果直接輸出為最終結果)
inputpath
設定 job 的輸入目錄, job 執行時會處理輸入目錄下的所有檔案
預設:null
outputpath
設定 job 的輸出目錄,job 的最終結果會寫入輸出目錄下
預設:null
mapoutputkeyclass
設定 map 函式輸出的中間結果中 key 的型別
預設:如果使用者沒有設定的話,使用 outputkeyclass
mapoutputvalueclass
設定 map 函式輸出的中間結果中 value 的型別
預設:如果使用者沒有設定的話,使用 outputvaluesclass
outputkeycomparator
對結果中的 key 進行排序時的使用的比較器
預設:writablecomparable
partitionerclass
對中間結果的 key 排序後,用此 partition 函式將其劃分為r份,每份由乙個 reducer 負責處理。
預設:hashpartitioner
(使用 hash 函式做 partition)
其他實現:keyfieldbasedpartitioner pipespartitioner
hadoop原始碼研究 2
job繼承自jobcontext,提供了一系列的set方法,用於設定job的一些屬性 job更新屬性,jobcontext讀屬性 同時,job還提供了一些對job進行控制的方法,如下 ll reduceprogress reduce的進度 0 1.0 liscomplete 作業是否已經完成 lis...
MR1和MR2的工作原理
1 客戶端向jobtracker請求乙個新的作業id 通過jobtracker的getnewjobid 方法獲取,見第2步 2 計算作業的輸入分片,將執行作業所需要的資源 包括jar檔案 配置檔案和計算得到的輸入分片 複製到乙個以id命名的jobtracker的檔案系統中 hdfs 見第3步 3 告...
MR 原始碼分析
mapreduce shuffle詳解 入口 執行wordcount例子。job的提交 job.waitforcompletion submit connect 連線yarn集群 submitter.submitjobinternal submitclient.submitjob yarnchild...