Apache HADOOP是用于開發(fā)在分布式計(jì)算環(huán)境中執(zhí)行的數(shù)據(jù)處理應(yīng)用程序的框架。
類似于存儲在個人計(jì)算機(jī)系統(tǒng)的本地文件系統(tǒng)中的數(shù)據(jù),在Hadoop中,數(shù)據(jù)存儲在被稱為 Hadoop分布式文件系統(tǒng)的分布式文件系統(tǒng)中。
處理模型基于“數(shù)據(jù)局部性”概念,其中計(jì)算邏輯被發(fā)送到包含數(shù)據(jù)的集群節(jié)點(diǎn)(服務(wù)器)。
這種計(jì)算邏輯只不過是用高級語言(如Java)編寫的程序的編譯版本。這樣的程序,處理存儲在Hadoop HDFS中的數(shù)據(jù)。
HADOOP是一個開源軟件框架。使用HADOOP構(gòu)建的應(yīng)用程序在分布在普通計(jì)算機(jī)集群上的大型數(shù)據(jù)集上運(yùn)行。
普通電腦價(jià)格便宜,廣泛應(yīng)用。這些主要用于以低成本實(shí)現(xiàn)更大的計(jì)算能力。
你知道嗎?計(jì)算機(jī)集群由一組多個處理單元(存儲磁盤+處理器)組成,它們彼此連接并作為單個系統(tǒng)。
Hadoop的組件
下圖顯示了Hadoop生態(tài)系統(tǒng)中的各種組件 -
Apache Hadoop包含兩個子項(xiàng)目
- Hadoop MapReduce MapReduce是一個用于編寫在Hadoop上運(yùn)行的應(yīng)用程序的計(jì)算模型和軟件框架。這些MapReduce程序能夠在大型計(jì)算節(jié)點(diǎn)集群上并行處理大量數(shù)據(jù)。
- HDFS(Hadoop分布式文件系統(tǒng)) HDFS負(fù)責(zé)Hadoop應(yīng)用程序的存儲部分。MapReduce應(yīng)用程序使用HDFS中的數(shù)據(jù)。HDFS創(chuàng)建多個數(shù)據(jù)塊副本,并將它們分布在集群中的計(jì)算節(jié)點(diǎn)上。這種分布使得可靠和極快速的計(jì)算成為可能。
盡管Hadoop最為人所知的是MapReduce及其分布式文件系統(tǒng)-HDFS,但該術(shù)語也用于一系列屬于分布式計(jì)算和大規(guī)模數(shù)據(jù)處理的相關(guān)項(xiàng)目。在其他的Hadoop相關(guān)項(xiàng)目的Apache包括有Hive,HBase,Mahout,Sqoop,F(xiàn)lume和Zookeeper。
'Hadoop'
- 適用于大數(shù)據(jù)分析
由于大數(shù)據(jù)在本質(zhì)上往往是分布式和非結(jié)構(gòu)化的,HADOOP集群最適合分析大數(shù)據(jù)。由于流向計(jì)算節(jié)點(diǎn)的是處理邏輯(不是實(shí)際數(shù)據(jù)),所以消耗更少的網(wǎng)絡(luò)帶寬。這個概念被稱為數(shù)據(jù)局部性,有助于提高基于Hadoop的應(yīng)用程序的效率。
- 可擴(kuò)展性
HADOOP集群可以通過添加額外的集群節(jié)點(diǎn)輕松擴(kuò)展到任何程度,從而允許大數(shù)據(jù)的增長。此外,規(guī)模不需要修改應(yīng)用程序邏輯。
- 容錯
HADOOP生態(tài)系統(tǒng)具有將輸入數(shù)據(jù)復(fù)制到其他集群節(jié)點(diǎn)的功能。這樣,在群集節(jié)點(diǎn)故障的情況下,數(shù)據(jù)處理仍然可以通過使用存儲在另一群集節(jié)點(diǎn)上的數(shù)據(jù)來進(jìn)行。
Hadoop中的網(wǎng)絡(luò)拓?fù)?/h3>
當(dāng)hadoop集群的大小增長時,網(wǎng)絡(luò)的拓?fù)洌ú贾茫绊慔adoop集群的性能。除了性能之外,還需要關(guān)注高可用性和故障處理。為了實(shí)現(xiàn)這種Hadoop集群的形成,利用網(wǎng)絡(luò)拓?fù)洹?/p>
通常,網(wǎng)絡(luò)帶寬是在構(gòu)成任何網(wǎng)絡(luò)時要考慮的重要因素。然而,由于測量帶寬可能很困難,在Hadoop中,網(wǎng)絡(luò)被表示為樹,并且該樹的節(jié)點(diǎn)之間的距離(跳數(shù))被認(rèn)為是形成Hadoop集群的重要因素。這里,兩個節(jié)點(diǎn)之間的距離等于它們到它們最接近的共同祖先的距離的總和。
Hadoop集群由數(shù)據(jù)中心,機(jī)架和實(shí)際執(zhí)行作業(yè)的節(jié)點(diǎn)組成。這里,數(shù)據(jù)中心由機(jī)架和機(jī)架組成的節(jié)點(diǎn)組成。可用于進(jìn)程的網(wǎng)絡(luò)帶寬取決于進(jìn)程的位置。也就是說,下面情況可用帶寬依次變得更小:
- 進(jìn)程在同一個節(jié)點(diǎn)上
- 同一機(jī)架上的不同節(jié)點(diǎn)
- 同一數(shù)據(jù)中心不同機(jī)架上的節(jié)點(diǎn)
- 不同數(shù)據(jù)中心的節(jié)點(diǎn)