Hadoop 概述
從《Hadoop前世今生》中我們知道,Hadoop是從Nutch搜索引擎項目裡拆分出來了兩個通用性的模塊:HDFS和MapReduce,他們主要提供的功能分别是分布式存儲和分布式計算。
Hadoop Common
- 但是問題來了,分布式存儲和分布式計算都需要網絡通信,所以Hadoop第三個模塊:Hadoop Common就應運而生了,他所做的事情各個進程之間的網絡通信,主要為HDFS和MapReduce提供基礎設施服務,并在此之上封裝了RPC框架。

從Hadoop 0.x 至 Hadoop 1.x 版本中基本都由Hadoop Common、HDFS、MapReduce構成的,下圖展示了在最初兩個大版本中Hadoop中各組件的結構
Hadoop YARN
- Hadoop YARN 這個模塊是有什麼作用呢?
- Hadoop YARN 是如何誕生的呢?隻要是由以下幾個需求推波助瀾才誕生的
- Hive
- 我們都知道MapReduce是提供分布式計算的,而這個框架産生之後,Hadoop的使用場景非常廣泛,整個大數據時代對分布式計算的要求也非常高,但是寫MapReduce的作業(也就是Job)的使用門檻非常高,其中需要寫很多處理邏輯,有一些程序員不會寫Job,隻會寫一些SQL語句去代替Job,所以産生了Hive框架,Hive隻需要程序員寫一些SQL就可以自動轉換成MapReduce的作業,進而簡化處理邏輯,降低使用門檻
- Storm 實時計算以及交互式計算
- 傳統的MapReduce處理的都是批量的離線數據,處理速度非常慢。随着整個大數據時代的發展,又産生了一些業務場景需要實時計算以及交互式計算,處理速度的要求也相應提升了很多,所以在新的業務場景以及需求下,促生了兩個新的分布式計算框架:storm
- Spark 基于内存的分布式計算框架
- 通過使用内存來進行批量計算、實時計算以及交互式計算,大大提高處理速度
- Flink 基于内存的分布式計算框架

Spark 和 Flink 的區别
- 這些新的分布式計算框架都需要申請CPU、内存、網路等計算資源,任務處理完成之後這些計算資源也要自動釋放掉,這些通用功能(資源的申請、釋放、任務的管理)就被抽離了出來,所以 YARN 就誕生了。

- 從Hadoop 2 版本開始就新加入了 YARN 來完成任務調度與資源管理的工作,當然我們可以把 YARN 理解為 大數據裡面的操作系統,而上面的應用就是各種分布式計算框架,而 HDFS 和 YARN 需要進行一些網絡通信,則需要調用 Hadoop Common 進行處理(基于RPC)。
總而言之 Hadoop 主要包括以下四個模塊
- Hadoop Common
- 為其他Hadoop模塊提供基礎設施
- Hadoop HDFS
- 一個高可靠、高吞吐量的分布式文件系統
- Hadoop MapReduce
- 一個分布式的離線并行計算框架
- Hadoop YARN
- 任務調度與資源管理
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!
查看全部