Hadoop 新舊MapReduce API比較

2021-07-15 07:24:27 字數 969 閱讀 4815

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

(1)存放位置

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

(2)介面變為抽象類

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

(3)上下文封裝

新版api將變數和函式封裝成各種上下文(context)類,使得api具有更好的易用性和擴充套件性。首先,函式引數列表經封裝後變短,使得函式更容易使用;其次,當需要修改或新增某些變數或函式時,只需修改封裝後的上下文類即可,使用者**無須修改,這樣保證了向後相容性,具有良好的擴充套件性。

除了以上三點不同之外,新舊api在很多其他細節方面也存在小的差別,具體將在接下來的內容中講解。

由於新版和舊版api在類層次結構、程式設計介面名稱及對應的引數列表等方面存在較大差別,所以兩種api不能相容。但考慮到應用程式的向後相容性,短時間內不會將舊api從mapreduce中去掉。即使在完全採用新api的0.21.0/0.22.x版本系列中,也僅僅將舊api標註為過期(deprecated),使用者仍然可以使用。

cuug官網

用PHP編寫Hadoop的MapReduce程式

usr local php bin php word2count array input comes from stdin standard input you can this code stdin fopen php stdin r while line fgets stdin false wr...

Hadoop2的Yarn和MapReduce2相關

1 什麼是yarn?2 yarn 和mapreduce相比,它有什麼特殊作用 yarn是乙個分布式的資源管理系統,用以提高分布式的集群環境下的資源利用率,這些資源包括記憶體 io 網路 磁碟等。其產生的原因是為了解決原mapreduce框架的不足。最初mapreduce的committer們還可以週...

七 Hadoop基本原理總結 MapReduce

一 主要組成 1 job 由客戶端向集群提交的一次計算任務。2 task 集群的最小可執行單位 乙個job將會分為多個task執行 3 resourcemanager 以下簡稱rm 管理整個集群的計算資源,主要用於為每乙個job分配計算資源 整個集群只有乙個rm 4 container 資源分配單位...