[Hadoop係列]Changes of Hadoop 0.20筆記
最近學習hadoop 0.20.1,網上找到一篇文章《What’s New in Hadoop Core 0.20 》,非完整的給翻譯了一下,為以後檢索方便,發上來保存一份。如果能讀懂英文的,千萬不要看下麵的中文。
Hadoop Core 0.20.0在2009年4月22日發布。這一發布相對0.19發布,有很多用戶使用層麵上的改變。
Core
Hadoop中兩個主要的組件是分布式文件係統(HDFS)和MapReduce,那兩個組件分別挪入各自的子項目中,因此他們能擁有自己的發布周期,並且更容易對開發進行管理。但是在0.20發布中,這兩個組件還是在一起發布。在這次發布中,hadoop-size.xml被拆分成三個配置文件:core-site.xml、hdfs-site.xml和mapred-site.xml(HADOOP-4631
)。你也可以繼續使用單一的hadoop-site.xml,hadoop僅僅會提出一個警告而已。默認配置文件已經移出conf文件夾,轉而放到.jar文件中,其內容可以看docs文件夾中的html文件。不讚成start-all.sh、stop-all.sh的使用,建議使用start-dfs.sh、start-mapred.sh、stop-dfs.sh、stop-mapred.sh來代替。
上麵說的是一些主要的變化,而允許slaves文件中加注注釋(HADOOP-4454
)對實際操作更為有用。
Hadoop配置文件支持Xinclude元素,用於引入其他的配置文件(HADOOP-4944(url:https://issues.apache.org/jira/browse/HADOOP-4944))。這一機製能讓配置文件更加模塊化、更易於重用。
圍繞安全問題,hadoop作出了一係列動作。其中0.20.0增加了service-level authorization (HADOOP-4348
)。開發人員能夠限製客戶端與hadoop daemons的通信。
LZO compression libraries
因為許可的原因移出了hadoop core,如果你的代碼使用GPL許可證,你還是能從hadoop-gpl-compression項目中得到LZO。
HDFS
HSFS append
從0.19.1開始默認disable。
hadoop增加了一個新的管理命令:hadoop dfsadmin -saveNamespace
。在安全模式下,這個命令能讓namenode轉存namespace到磁盤。
MapReduce
在這一發布中,最大的變化是加入了一個叫“Context Objects”的新Java API。把Mapper和Reduce通過引入Context Object變成抽象類(不是接口),是為了讓API將來更易於演進。
1.JobConf不再存在,Job配置信息由Configuration持有;
2.現在在map()或reduce()方法中,更容易得到job配置信息。僅需要調用context.getConfiguration()。
3.新的API支持pull形式的迭代。在此之前,如果你想在mapper中遍曆一下記錄,你不得不把他們保存到Mapper類的實例變量中。在新的API中,隻需要調用nextKeyValue()即可。
4.你還能覆蓋run()方法,來控製mapper如何運行。
5.新API中不再有IdentityMapper和IdentityReducer兩個類,因為默認Mapper和Reducer執行了標識函數。
新的API並非向後兼容,所以你必須重寫你的應用。注意,新的API在org.apache.hadoop.mapreduce包及其子包中,而舊的API在org.apache.hadoop.mapred。
Multiple task assignment
,這一優化讓JobTracker在一次心跳周期內能分配給tasktracker多個任務,提高了利用率。同時引入mapred.reduce.slowstart.completed.maps新的配置參數(默認0.05)。
Input formats
增加了一些有意思的改進。FileInputFormat在選擇那個主機有更多的需要分割的文件上做的更好。在另一方麵0.20引入了CombineFileInputFormat類,他能把許多小文件變成一個split。
Gridmix2是第二代MapReduce工作量基準模型套件。
Contrib
兩個新捐獻的模塊在0.20分支中出現:
HDFS Proxy
,他能暴露HDFS一個隻讀的HSFTP接口,用於提供安全的、隻讀的訪問。
Vaidya
,這是一個工具,用於在MapReduce job運行後通過檢查作業曆史和配置信息來診斷錯誤。針對常見的問題能提供一些改進意見,使得你的代碼能避免出錯。
最後更新:2017-04-02 04:01:44