閱讀385 返回首頁    go 阿裏雲 go 技術社區[雲棲]


[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

  上一篇:go SQL數據類型詳解
  下一篇:go Java壓縮類庫的使用-4.Apache commons compress中的打包、壓縮類庫