[hadoop]hadoop api 新版本與舊版本的差別

風痕影默發表於2015-03-03

突然現在對以後的職業方向有些迷茫,不知道去幹什麼,現在有一些語言基礎,相對而言好的一些有Java和C,選來選去不知道該選擇哪個方向,爬了好多網頁後,覺得自己應該從java開始出發,之前有點心不在焉,不知道從而且還在中途走了一段的彎路,沒事幹又跑去研究了一段時間的Php,但是後來發現php可以作為自己的一個業餘愛好吧,還好自己還有時間,覺得從java基礎學習一下基於hadoop的海量資料處理還是就業前景還是不錯的,奧,跑題了,隨便扯點,最近學習hadoop,看到第二章,發現這裡有點意思,裡邊的一部分翻譯自hadoop:the definitive guide.自己對沒一點做出一些自己的理解。

1、新版本相對舊版本的的api更傾向於用抽象類,而非介面

2、新的API在org.apache.hadoop.mapreduce包中,就版本的在org.apache.hadoop.mapre中

3、新的API充分使用上下文物件,使使用者程式碼能夠和mapreduce系統通訊

4、新的API可以通過重寫run()可以控制mapper和reducer的控制流程,舊的只能通過寫MapRunnable類在控制mapper但是不能控制reducer.

5、新的API作業控制由Job類實現,舊的由JobClient

6、新的API實現了配置統一,舊的API通過一個特殊的JobConf物件配置作業

7、輸出檔案命名也發生了變化,舊的API統一命名為part-nnmm, 新的map輸出檔案命名為part-m-nnmm,reduce命名為part-r-nnmm

8、新的API中使用者過載函式被宣告為丟擲異常java.lang.InterruptedException,可以通過程式碼來響應中斷.

9、新的API中reduce()傳遞的值為java.lang.Interable型別,而非java.lang.iterator,可以更容易地使用java的for-each迴圈結構

相關文章