Hadoop新舊API的區別和聯絡

2021-06-16 21:41:58 字數 849 閱讀 9014

從0.20.0 版本開始,hadoop 同時提供了新舊兩套mapreduce api。新api 在舊api基礎上進行了封裝,使得其在擴充套件性和易用性方面更好。新舊版mapreduce api 的主要區別如下。

(1)存放位置

舊版api 放在org.apache.hadoop.mapred 包中,而新版api 則放在org.apache.hadoop.mapreduce 包及其子包中。

(2)介面變為抽象類

介面通常作為一種嚴格的「協議約束」。它只有方法宣告而沒有方法實現,且要求所有實現類(不包括抽象類)必須實現介面中的每乙個方法。介面的最大優點是允許乙個類實現多個介面,進而實現類似c++ 中的「多重繼承」。抽象類則是一種較寬鬆的「約束協議」,它可為某些方法提供預設實現。而繼承類則可選擇是否重新實現這些方法。正是因為這一點,抽象類在類衍化方面更有優勢,也就是說,抽象類具有良好的向後相容性,當需要為抽象類新增新的方法時,只要新新增的方法提供了預設實現,使用者之前的**就不必修改了。

除了以上三點不同之外,新舊api 在很多其他細節方面也存在小的差別。

由於新版和舊版api 在類層次結構、程式設計介面名稱及對應的引數列表等方面存在較大差別,所以兩種api 不能相容。但考慮到應用程式的向後相容性,短時間內不會將舊api

從mapreduce 中去掉。即使在完全採用新api 的0.21.0/0.22.x 版本系列中,也僅僅將舊api 標註為過期(deprecated),使用者仍然可以使用。

從以上兩個例項可以看出,新版api 用job 類代替了jobconf 和jobclient 兩個類,這樣,僅使用乙個類的同時可完成作業配置和作業提交相關功能,進一步簡化了作業編寫方式

原文引自《hadoop技術內幕-深入解析mapreduce框架設計與實現原理》

hadoop和spark的區別

在學習hadoop的時候查詢一些資料的時候經常會看到有比較hadoop和spark的,對於初學者來說難免會有點搞不清楚這二者到底有什麼大的區別。我記得剛開始接觸大資料這方面內容的時候,也就這個問題查閱了一些資料,在 freerch大資料一體化開發框架 的這篇說明文件中有就hadoop和spark的區...

OpenStack和Hadoop的區別

其實,openstack和hadoop不是同乙個層次的東西,無法比較,非要說出個區別,那就是 openstack是雲計算管理平台,應該是屬於系統級別的軟體,它的主體思想是把資源進行分離,給不同的使用者提供虛擬機器的服務,比如現在你只有一台超級計算機,而此時有n個使用者需要使用,openstack就可...

新舊身份證的區別

舊的身份證號碼有15位,新的身份證號碼有18位。其中前兩位分別是省。自治區或直轄市。3.4兩位表示所在的市,5.6兩位表示所在的縣區。第7 14位表示出生年月日。第15位至17位為順序碼,第17位表示性別,一般男的用奇數表示,女的用偶數表示。第18位表示校驗碼,也有的說是個人資訊碼,一般是隨計算機的...