Apache HADOOP是用于開發(fā)在分布式計(jì)算環(huán)境中執(zhí)行的數(shù)據(jù)處理應(yīng)用程序的框架钉疫。
類似于存儲(chǔ)在個(gè)人計(jì)算機(jī)系統(tǒng)的本地文件系統(tǒng)中的數(shù)據(jù),在Hadoop中牲阁,數(shù)據(jù)存儲(chǔ)在被稱為 Hadoop分布式文件系統(tǒng)的分布式文件系統(tǒng)中城菊。
處理模型基于“數(shù)據(jù)局部性”概念凌唬,其中計(jì)算邏輯被發(fā)送到包含數(shù)據(jù)的集群節(jié)點(diǎn)(服務(wù)器)客税。
這種計(jì)算邏輯只不過是用高級(jí)語言(如Java)編寫的程序的編譯版本况褪。這樣的程序测垛,處理存儲(chǔ)在Hadoop HDFS中的數(shù)據(jù)赐纱。
HADOOP是一個(gè)開源軟件框架熬北。使用HADOOP構(gòu)建的應(yīng)用程序在分布在普通計(jì)算機(jī)集群上的大型數(shù)據(jù)集上運(yùn)行。
普通電腦價(jià)格便宜起胰,廣泛應(yīng)用巫延。這些主要用于以低成本實(shí)現(xiàn)更大的計(jì)算能力。
你知道嗎畏妖?計(jì)算機(jī)集群由一組多個(gè)處理單元(存儲(chǔ)磁盤+處理器)組成戒劫,它們彼此連接并作為單個(gè)系統(tǒng)。
Hadoop的組件
下圖顯示了Hadoop生態(tài)系統(tǒng)中的各種組件 -
Apache Hadoop包含兩個(gè)子項(xiàng)目
- Hadoop MapReduce MapReduce是一個(gè)用于編寫在Hadoop上運(yùn)行的應(yīng)用程序的計(jì)算模型和軟件框架。這些MapReduce程序能夠在大型計(jì)算節(jié)點(diǎn)集群上并行處理大量數(shù)據(jù)茵典。
- HDFS(Hadoop分布式文件系統(tǒng)) HDFS負(fù)責(zé)Hadoop應(yīng)用程序的存儲(chǔ)部分统阿。MapReduce應(yīng)用程序使用HDFS中的數(shù)據(jù)。HDFS創(chuàng)建多個(gè)數(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ò)帶寬坊饶。這個(gè)概念被稱為數(shù)據(jù)局部性,有助于提高基于Hadoop的應(yīng)用程序的效率蟋滴。
- 可擴(kuò)展性
HADOOP集群可以通過添加額外的集群節(jié)點(diǎn)輕松擴(kuò)展到任何程度津函,從而允許大數(shù)據(jù)的增長(zhǎng)孤页。此外,規(guī)模不需要修改應(yīng)用程序邏輯魂那。
- 容錯(cuò)
HADOOP生態(tài)系統(tǒng)具有將輸入數(shù)據(jù)復(fù)制到其他集群節(jié)點(diǎn)的功能。這樣涯雅,在群集節(jié)點(diǎn)故障的情況下展运,數(shù)據(jù)處理仍然可以通過使用存儲(chǔ)在另一群集節(jié)點(diǎn)上的數(shù)據(jù)來進(jìn)行。
Hadoop中的網(wǎng)絡(luò)拓?fù)?/h3>
當(dāng)hadoop集群的大小增長(zhǎng)時(shí)蔗候,網(wǎng)絡(luò)的拓?fù)洌ú贾茫?huì)影響Hadoop集群的性能琴庵。除了性能之外,還需要關(guān)注高可用性和故障處理仰美。為了實(shí)現(xiàn)這種Hadoop集群的形成迷殿,利用網(wǎng)絡(luò)拓?fù)洹?/p>
通常,網(wǎng)絡(luò)帶寬是在構(gòu)成任何網(wǎng)絡(luò)時(shí)要考慮的重要因素咖杂。然而庆寺,由于測(cè)量帶寬可能很困難,在Hadoop中诉字,網(wǎng)絡(luò)被表示為樹懦尝,并且該樹的節(jié)點(diǎn)之間的距離(跳數(shù))被認(rèn)為是形成Hadoop集群的重要因素。這里壤圃,兩個(gè)節(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)程在同一個(gè)節(jié)點(diǎn)上
- 同一機(jī)架上的不同節(jié)點(diǎn)
- 同一數(shù)據(jù)中心不同機(jī)架上的節(jié)點(diǎn)
- 不同數(shù)據(jù)中心的節(jié)點(diǎn)