下面介紹mapreduce的主要的六個類,只有了解了這六個類的作用,才能在編寫程式中知道哪個類是要自己實現,哪些類可以呼叫預設的類,才能真正的做到游刃有餘,關於需要自己編寫的類(使用者制定類)可以參考:
inputformat類。該類的作用是將輸入的檔案和資料分割成許多小的split檔案,並將split的每個行通過linerecorderreader解析成,通過job.setinputfromatclass()函式來設定,預設的情況為類textinputformat,其中key預設為字元偏移量,value是該行的值。
combine類。實現combine函式,該類的主要功能是合併相同的key鍵,通過job.setcombinerclass()方法設定,預設為null,不合併中間結果。實現map函式
partitioner類。 該該主要在shuffle過程中按照key值將中間結果分成r份,其中每份都有乙個reduce去負責,可以通過job.setpartitionerclass()方法進行設定,預設的使用hashpartitioner類。實現getpartition函式
reducer類。 將中間結果合併,得到中間結果。通過job.setreducecalss()方法進行設定,預設使用reducer類,實現reduce方法。
outputformat類,該類負責輸出結果的格式。可以通過job.setoutputformatclass()方法進行設定。預設使用textoutputformat類,得到對。
note:
hadoop主要是上面的六個類進行mapreduce操作,使用預設的類,處理的資料和文字的能力很有限,具體的專案中,使用者通過改寫這六個類(過載六個類),完成
專案的需求。說實話,我剛開始學的時候,我懷疑過mapreudce處理資料功能,隨著學習深入,真的很欽佩mapreduce的設計,基本就二個函式,通過過載,可以完成
所有你想完成的工作。
public static void main(string args)throws ioexception
}
Linux C程式設計 main函式引數解析
摘自 我們經常用的main函式都是不帶引數的。因此main 後的括號都是空括號。實際上,main函式可以帶引數,這個引數可以認為是 main函式的形式引數。語言規定main函式的引數只能有兩個,習慣上這兩個引數寫為argc和argv。因此,main函式的函式頭可寫為 main argc,argv 語...
VC Service程式設計(一)編寫main函式
翻譯自msdn,是好多年前我發布在好網部落格上的,現在把它轉過來 編寫服務程式的main函式 服務程式的main函式呼叫startservicectrldispatcher函式,將它與scm 服務控制管理器 聯絡起來,並開啟乙個控制排程執行緒。控制排程執行緒不停的迴圈,等待接收在排程表中已經定義好的...
C 中的Main方法
c main方法是 c 控制台應用程式或視窗應用程式的入口點。應用程式啟動時,c main 方法是第乙個呼叫的方法。c 中的main 方法首字母必須大寫,如果首字母小寫就會產生編譯錯誤,編譯失敗。c main方法有以下幾條準則 main 方法在c 裡非常特殊,它是編譯器規定的所有可執行程式的入口點。...