2017-10-09 169 views
1

我有點困惑YARNMR2之間。他們一樣嗎?我已經看到YARN作爲在某些文檔中運行分佈式應用程序的平臺,而MapReduce就是這樣的分佈式應用程序,那是什麼意思?這是一個由程序員構建的MapReduce應用程序(例如:wordcount程序)嗎? 我再次看到「編寫自己的YARN應用程序」,那是什麼意思?一個wordcount程序屬於哪個類別,一個YARN應用程序或一個MR2應用程序?YARN和MR2有區別嗎?

請相關問題,如果它不在stackoverflow標準,我試圖表達我所有的疑惑。

回答

0

首先在HADOOP 2中引入了YARN。在hadoop 1中,單個Name節點管理Hadoop集羣的整個名稱空間。隨着YARN(YET ANOTHER RESOURCE MANAGER)的引入,集羣資源管理由YARN負責。

您可以假設YARN運行在HDFS之上,並在YARN不同的數據處理組件上運行,如mapreduce和ows run。 在Hadoop 1中,用戶可以選擇使用Java,Python或其他腳本語言使用流編寫MapReduce程序,或者使用Pig(一種數據轉換語言)編寫MapReduce程序。無論使用哪種方法,都從根本上依靠MapReduce處理模型來運行。

除了MapReduce,YARN還支持多種處理模型。其中最顯着的優勢之一就是我們不再侷限於處理I/O密集型,高延遲的MapReduce框架。

現在你的問題'寫你自己的YARN應用程序',那是什麼意思?

現在在YARN上我們可以編寫任何分佈式應用程序。 MR2是負責運行MapReduce框架的分佈式應用程序之一。因此,字數計劃屬於MR2應用程序,負責運行此MapReduce結構。

0

YARNMR2是相關的,但不相同。

MapReduce是一種計算方法,而在Hadoop世界中,MapReduce也是Hadoop 1.0的同義詞; Hadoop中1.0,MapReduce提供兩個資源管理以及運行「MapReduce的」的執行框架(1.0)應用

用Hadoop 2.0,資源管理和執行框架被分裂成兩個單獨的實體,YARN(然而,另一個資源談判)用於集羣計算資源的通用資源管理系統,以及執行引擎MapReduce 2.0(簡寫爲MR2)。

  • MR2YARN應用
  • 你可以寫一個 「MapReduce的」(2.0)的應用如果你是一個Hadoop 2,將在YARN
  • 運行。0集羣,使用類似PigHive使用默認的執行引擎,MR2,他們將YARN

部分的推理這種分裂中的Hadoop 2.0的運行爲MR2應用程序是爲了允許其他執行引擎,超越MR2;今天這還包括Apache Tez和Apache Spark,它們可以在YARN上運行。