Hadoop是使用Java編寫,允許分布在叢集,使用簡單的程式設計模型的計算機大型資料集處理的Apache的開源框架。 Hadoop框架應用工程提供跨計算機叢集的分散式儲存和計算的環境。 Hadoop是專為從單一伺服器到上千台機器擴充套件,每個機器都可以提供本地計算和儲存。
在其核心,Hadoop主要有兩個層次,即:
MapReduce是一種並行程式設計模型,用於編寫普通硬體的設計,谷歌對大量資料的高效處理(多TB資料集)的分散式應用在大型叢集(數千個節點)以及可靠的容錯方式。 MapReduce程式可在Apache的開源框架Hadoop上執行。
Hadoop分散式檔案系統(HDFS)是基於谷歌檔案系統(GFS),並提供了一個設計在普通硬體上執行的分散式檔案系統。它與現有的分散式檔案系統有許多相似之處。來自其他分散式檔案系統的差別是顯著。它高度容錯並設計成部署在低成本的硬體。提供了高吞吐量的應用資料存取,並且適用於具有巨量資料集的應用程式。
除了上面提到的兩個核心元件,Hadoop的框架還包括以下兩個模組:
Hadoop通用:這是Java庫和其他Hadoop元件所需的實用工具。
Hadoop YARN :這是作業排程和叢集資源管理的框架。
建立重組態,處理大規模處理伺服器這是相當昂貴的,但是作為替代,可以聯絡許多普通電腦採用單CPU在一起,作為一個單一功能的分散式系統,實際上,叢集機可以平行讀取資料集,並提供一個高得多的吞吐量。此外,這樣便宜不到一個高階伺服器價格。因此使用Hadoop跨越叢集和低成本的機器上執行是一個不錯不選擇。
Hadoop執行整個計算機叢集程式碼。這個過程包括以下核心任務由 Hadoop 執行:
Hadoop框架允許使用者快速地編寫和測試的分散式系統。有效並在整個機器和反過來自動分配資料和工作,利用CPU核心的基本平行度。
Hadoop不依賴於硬體,以提供容錯和高可用性(FTHA),而Hadoop庫本身已被設計在應用層可以檢測和處理故障。
伺服器可以新增或從叢集動態刪除,Hadoop可繼續不中斷地執行。
Hadoop的的另一大優勢在於,除了是開源的,因為它是基於Java並相容所有的平台。