Hadoop是使用Java編寫,允許分佈在集群,使用簡單的編程模型的電腦大型數據集處理的Apache的開源框架。 Hadoop框架應用工程提供跨電腦集群的分佈式存儲和計算的環境。 Hadoop是專為從單一伺服器到上千臺機器擴展,每個機器都可以提供本地計算和存儲。
Hadoop的架構
在其核心,Hadoop主要有兩個層次,即:
- 加工/計算層(MapReduce),以及
- 存儲層(Hadoop分佈式檔系統)。

MapReduce
MapReduce是一種並行編程模型,用於編寫普通硬體的設計,穀歌對大量數據的高效處理(多TB數據集)的分佈式應用在大型集群(數千個節點)以及可靠的容錯方式。 MapReduce程式可在Apache的開源框架Hadoop上運行。
Hadoop分佈式檔系統
Hadoop分佈式檔系統(HDFS)是基於穀歌檔系統(GFS),並提供了一個設計在普通硬體上運行的分佈式檔系統。它與現有的分佈式檔系統有許多相似之處。來自其他分佈式檔系統的差別是顯著。它高度容錯並設計成部署在低成本的硬體。提供了高吞吐量的應用數據訪問,並且適用於具有大數據集的應用程式。
除了上面提到的兩個核心組件,Hadoop的框架還包括以下兩個模組:
-
Hadoop通用:這是Java庫和其他Hadoop組件所需的實用工具。
-
Hadoop YARN :這是作業調度和集群資源管理的框架。
Hadoop如何工作?
建立重配置,處理大規模處理伺服器這是相當昂貴的,但是作為替代,可以聯繫許多普通電腦採用單CPU在一起,作為一個單一功能的分佈式系統,實際上,集群機可以平行讀取數據集,並提供一個高得多的吞吐量。此外,這樣便宜不到一個高端伺服器價格。因此使用Hadoop跨越集群和低成本的機器上運行是一個不錯不選擇。
Hadoop運行整個電腦集群代碼。這個過程包括以下核心任務由 Hadoop 執行:
- 數據最初分為目錄和文件。檔分為128M和64M(128M最好)統一大小塊。
- 然後這些檔被分佈在不同的群集節點,以便進一步處理。
- HDFS,本地檔系統的頂端﹑監管處理。
- 塊複製處理硬體故障。
- 檢查代碼已成功執行。
- 執行發生映射之間,減少階段的排序。
- 發送排序的數據到某一電腦。
- 為每個作業編寫的調試日誌。
Hadoop的優勢
-
Hadoop框架允許用戶快速地編寫和測試的分佈式系統。有效並在整個機器和反過來自動分配數據和工作,利用CPU內核的基本平行度。
-
Hadoop不依賴於硬體,以提供容錯和高可用性(FTHA),而Hadoop庫本身已被設計在應用層可以檢測和處理故障。
-
伺服器可以添加或從集群動態刪除,Hadoop可繼續不中斷地運行。
-
Hadoop的的另一大優勢在於,除了是開源的,因為它是基於Java並相容所有的平臺。