Hadoop是使用Java編寫,允許分布在集群,使用簡(jiǎn)單的編程模型的計(jì)算機(jī)大型數(shù)據(jù)集處理的Apache的開源框架。 Hadoop框架應(yīng)用工程提供跨計(jì)算機(jī)集群的分布式存儲(chǔ)和計(jì)算的環(huán)境。 Hadoop是專為從單一服務(wù)器到上千臺(tái)機(jī)器擴(kuò)展,每個(gè)機(jī)器都可以提供本地計(jì)算和存儲(chǔ)。
在其核心,Hadoop主要有兩個(gè)層次,即:
MapReduce是一種并行編程模型,用于編寫普通硬件的設(shè)計(jì),谷歌對(duì)大量數(shù)據(jù)的高效處理(多TB數(shù)據(jù)集)的分布式應(yīng)用在大型集群(數(shù)千個(gè)節(jié)點(diǎn))以及可靠的容錯(cuò)方式。 MapReduce程序可在Apache的開源框架Hadoop上運(yùn)行。
Hadoop分布式文件系統(tǒng)(HDFS)是基于谷歌文件系統(tǒng)(GFS),并提供了一個(gè)設(shè)計(jì)在普通硬件上運(yùn)行的分布式文件系統(tǒng)。它與現(xiàn)有的分布式文件系統(tǒng)有許多相似之處。來自其他分布式文件系統(tǒng)的差別是顯著。它高度容錯(cuò)并設(shè)計(jì)成部署在低成本的硬件。提供了高吞吐量的應(yīng)用數(shù)據(jù)訪問,并且適用于具有大數(shù)據(jù)集的應(yīng)用程序。
除了上面提到的兩個(gè)核心組件,Hadoop的框架還包括以下兩個(gè)模塊:
Hadoop通用:這是Java庫(kù)和其他Hadoop組件所需的實(shí)用工具。
Hadoop YARN :這是作業(yè)調(diào)度和集群資源管理的框架。
建立重配置,處理大規(guī)模處理服務(wù)器這是相當(dāng)昂貴的,但是作為替代,可以聯(lián)系許多普通電腦采用單CPU在一起,作為一個(gè)單一功能的分布式系統(tǒng),實(shí)際上,集群機(jī)可以平行讀取數(shù)據(jù)集,并提供一個(gè)高得多的吞吐量。此外,這樣便宜不到一個(gè)高端服務(wù)器價(jià)格。因此使用Hadoop跨越集群和低成本的機(jī)器上運(yùn)行是一個(gè)不錯(cuò)不選擇。
Hadoop運(yùn)行整個(gè)計(jì)算機(jī)集群代碼。這個(gè)過程包括以下核心任務(wù)由 Hadoop 執(zhí)行:
Hadoop框架允許用戶快速地編寫和測(cè)試的分布式系統(tǒng)。有效并在整個(gè)機(jī)器和反過來自動(dòng)分配數(shù)據(jù)和工作,利用CPU內(nèi)核的基本平行度。
Hadoop不依賴于硬件,以提供容錯(cuò)和高可用性(FTHA),而Hadoop庫(kù)本身已被設(shè)計(jì)在應(yīng)用層可以檢測(cè)和處理故障。
服務(wù)器可以添加或從集群動(dòng)態(tài)刪除,Hadoop可繼續(xù)不中斷地運(yùn)行。
Hadoop的的另一大優(yōu)勢(shì)在于,除了是開源的,因?yàn)樗腔贘ava并兼容所有的平臺(tái)。