日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop 1.x 和 Hadoop 2.x 有什么区别?

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop 1.x 和 Hadoop 2.x 有什么区别? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

本文隸屬于專欄《1000個問題搞定大數據技術體系》,該專欄為筆者原創,引用請注明來源,不足和錯誤之處請在評論區幫忙指出,謝謝!

本專欄目錄結構和參考文獻請見1000個問題搞定大數據技術體系

正文

YARN

Hadoop 和 Hadoop 之間的最大不同是 YARN 。
YARN 是“ Yet Another Resource Negotiator ”的縮寫。
Hadoop 僅僅是 HDFS 和 MapReduce 計算框架的組合。
正如我們所看到的,在 Hadoop 中, YARN 位于 HDFS 層(依賴于服務器本地存儲)和計算框架(如 MapReduce 、 Spark )之間。
YARN 的主要功能是進行資源管理和調度。
在 Hadoop 中, MapReduce 是你實際可使用的唯一的計算框架,它直接與 HDFS 進行交互。
在 Hadoop 中, MapReduce 以與 Hadoop 中類似的方式執行數據處理。
那么哪個 Hadoop 組件在 Hadoop 中執行了集群資源管理和任務調度呢?
MapReduce 執行數據處理和集群資源管理的雙重任務。

架構區別

Hadoop 1 使用 MRvl 而 Hadoop 使用 MRv2 (也稱為 YARN )。
在 Hadoop 2 中,有一個全局 ResourceManager 進程來管理集群中的資源,且它運行在主節點上。
工作節點上將有單獨的 NodeManager 進程來執行數據處理任務。

在 Hadoop 1 中,有一個單獨的進程 JobTracker 來管理作業。
每個工作節點運行個工作于特定節點的 TaskTracker 進程來實際執行作業。
Hadoop 1 中的 JobTracker 負責執行調度和任務管理功能。
在 Hadoop 2 中, JobTracker 被分為調度和資源管理兩個功能:

  • ResourceManager 處理調度任務;
  • ApplicationMaster 負責特定應用的資源管理。

Hadoop 2 中的 ResourceManager 管理著以前由 Hadoop 中的 JobTracker 執行的幾個關鍵功能。
更準確地說, ResourceManager 執行 JobTracker 的一些任務,新的特定應用的 ApplicationMaster 負責 JobTracker 其余的工作。
在 Hadoop 1 中, JobTracker 在繁忙的集群中超負荷運轉,因為它同時負責資源管理和任務調度雙重任務。
JobTracker 資源管理和作業調度/監控兩個關鍵功能的分離減輕了專用守護程序的工作壓力。

Hadoop 2 中的 NodeManager 執行 Hadoop 中運行在每個節點上的 TaskTracker 負責的所有任務。
NodeManager 進程在集群中的工作節點上運行,并作為代理監視當前節點上任務的執行 ResourceManager 在 Hadoop 中作為純調度器使用,它與 MapReduce 之間沒有特殊連接。
而在 Hadoop 1 中, JobTracker 與 MapReduce 是高度耦合的。

高可用性

Hadoop 2 具有超高的可用性,可讓你運行 Standby NameNode 和 Standby ResourceManager 服務,這兩者都對集群運行至關重要。

在 Hadoop 1 中, NameNode 只有一個,存在單點故障風險。 如果 NameNode 服務器不可用,則對 HDFS 的所有訪問都將被中斷,導致整個集群不可用。

多計算引擎

在 Hadoop 1 中,無論使用 MapReduce 、 Hive 、 Pig 還是 Python 、 Ruby 的流模型,你只能使用 MapReduce 作為處理引擎。 根本沒有可用的替代引擎。
Hadoop 2 提供了多種處理引擎,如 MapReduce 、 Apache Spark 、 Apache Tez 等。

Hadoop 2 不僅支持批處理,而且支持多種應用類型,如:

  • 批處理 MapReduce 、 Hive / Pig 和 Apache Tez
  • 交互式 SQL 引擎- Apache Tez
  • 在線數據庫一 HBase
  • 流式處理 Apache Storm 、 Apache Spark 和 Apache Flink
  • 內存模式(迭代應用)ー- Apache Spark
  • 圖計算-- Giraph 、 Spark Graphx
  • HPC MPI - OpenMPI
  • 可擴展搜索. Apache Solr
  • Hbase on YARN HOYA

雖然 MapReduce 可以勝任多種類型的工作,但是它并不適合所有的大數據用例。

Hadoop 1 一個經常為人詬病的地方是高延遲。
在 Hadoop 2 中,可以根據特定的用例類型,選擇合適的計算引擎。

Hadoop 1 用批處理的方式處理海量數據,在這種情況下,時間延遲并不是問題。
雖然 Hadoop 1 非常善于處理甚至包含 PB 級信息的大型非結構化數據集,但在實時數據集的實時分析中并不十分有效。
Hadoop 2 打破了 Hadoop 1 以批處理為中心的這種定位。

分離處理和調度

Hadoop 2 中的 YARN (下一代 MapReduce ,被稱為 YARN 或 MRv2 )標志著 Hadoop 在執行基本工作時有了根本性的不同。

YARN 被設計為一個通用的分布式應用程序管理框架,而不是像 MapReduce 在 Hadoop 1 中作為一體化資源管理器和性能引擎。

實際上,在更多情況下, YARN 被稱為“ Hadoop 操作系統”,因為它執行如下功能:

  • 維護了一個可以使批處理、交互式和實時處理等計算引擎同時訪問相同 HDFS 數據的多租戶環境。
  • 監控和管理應用的負載。

Hadoop 2 中的 MapReduce (也稱為 MRv2 )保留了它的處理能力,并成為了一個純粹的分布式計算框架。

資源分配

最初, Hadoop 1 沒有在同時運行的各種作業之間采用復雜的方式進行資源分配,而是采用了先進先出的資源分配模型,

這也意味著,長時間運行的作業會長期占用資源,這會有潛在的風險,會導致小而重要的作業因為長而不重要的作業占用資源而無法啟動。

在 Hadoop 的后續版本中,引入了名為“公平調度器”和“容量調度器”的復雜作業調度程序。

在 Hadoop 1 中,使用插槽( slots )的方式來管理資源,而在 Hadoop 2 中,則使用容器( container )來管理資源。

最后, Hadoop 1 和 Hadoop 2 在擴展能力上的最大差別在于, Hadoop 1 集群只可以擴展到大約 5000 個節點,而 Hadoop 2 集群可以擴展到 10000 個節點。

總結

以上是生活随笔為你收集整理的Hadoop 1.x 和 Hadoop 2.x 有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。