Hadoop簡介
Hadoop是一種分析和處理大數(shù)據(jù)的軟件平臺,是一個用Java語言實現(xiàn)的Apache的開源軟件框架,在大量計算機(jī)組成的集群中實現(xiàn)了對海量數(shù)據(jù)的分布式計算。其主要采用MapReduce分布式計算框架,包括根據(jù)GFS原理開發(fā)的分布式文件系統(tǒng)HDFS、根據(jù)BigTable原理開發(fā)的數(shù)據(jù)存儲系統(tǒng)HBase以及資源管理系統(tǒng)YARN。
Hadoop MapReduce原理
MapReduce最早由Google于2004年在一篇名為《MapReduce: Simplified Data Processing on Large Clusters》的論文中提出,把分布式數(shù)據(jù)處理的過程拆分為Map和Reduce兩個操作函數(shù),隨后被Apache Hadoop參考并提供開源版本。
MapReduce將復(fù)雜的、運行于大規(guī)模集群上的并行計算過程高度抽象到了兩個函數(shù):Map和Reduce,并極大地方便了分布式編程工作,其主要包含以下過程:
- Map(映射):對一些獨立元素組成的列表的每一個元素進(jìn)行制定的操作,可以高度并行。
- Shuffle(重組):對Map輸出的數(shù)據(jù)會經(jīng)過分區(qū)、排序、分組等動作進(jìn)行重組,使得key相同的分在同一個分區(qū),同一個分區(qū)被同一個reduce處理。
- Reduce(歸約):歸約過程,把若干組映射結(jié)果進(jìn)行匯總并輸出。
用戶編寫的程序分成三個部分:Mapper, Reducer, Driver(提交運行程序的客戶端驅(qū)動)。需要注意的是,整個MapReduce程序中,數(shù)據(jù)都是以<key,value>鍵值對的形式流轉(zhuǎn)的。
Hadoop HDFS原理
HDFS最初是模仿GFS開發(fā)的開源系統(tǒng),適合存儲大文件并提供高吞吐量的順序讀/寫訪問。其整體架構(gòu)如圖所示,其由NameNode, DataNode, Secondary NameNode以及客戶端構(gòu)成。
NameNode負(fù)責(zé)管理整個分布式文件系統(tǒng)的元數(shù)據(jù),包括文件目錄樹結(jié)構(gòu)、文件到數(shù)據(jù)塊Block的映射關(guān)系、Block副本及其存儲位置等各種管理數(shù)據(jù)。其磁盤保存兩個元數(shù)據(jù)管理文件fsimage和editlog:
- fsimage是內(nèi)存命名空間元數(shù)據(jù)在外存的鏡像文件;
- editlog是各種元數(shù)據(jù)操作的write-ahead-log文件。
Secondary NameNode提供檢查點功能服務(wù),職責(zé)是定期從NameNode拉取fsimage和editlog文件進(jìn)行合并,形成新的fsimage文件并傳回給NameNode;
DataNode負(fù)責(zé)數(shù)據(jù)塊的實際存儲和讀/寫工作,為保證數(shù)據(jù)可用性,每個Block以多備份的形式存儲。
同時,NameNode與DataNode通過短時間間隔的心跳來傳遞管理信息和數(shù)據(jù)信息,從而實現(xiàn)DataNode的狀態(tài)監(jiān)控。如果某個DataNode發(fā)生故障,NameNode會將其負(fù)責(zé)的Block在其他DataNode機(jī)器增加相應(yīng)備份以維護(hù)數(shù)據(jù)可用性。
Hadoop的優(yōu)點與局限性
Hadoop 是一個基礎(chǔ)框架,具有低成本、高可靠、高擴(kuò)展、高有效、高容錯等特性,能夠進(jìn)行海量數(shù)據(jù)的離線處理。
Hadoop允許用簡單的編程模型在計算機(jī)集群上對大型數(shù)據(jù)集進(jìn)行分布式處理。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,輕松地在 Hadoop 上開發(fā)和運行處理海量數(shù)據(jù)的應(yīng)用程序。
同時其計算能力可以隨節(jié)點數(shù)目增長保持近似于線性的增長,它的設(shè)計規(guī)模從單一服務(wù)器到數(shù)千臺機(jī)器,每個服務(wù)器都能提供本地計算和存儲功能,框架本身提供的是計算機(jī)集群高可用的服務(wù),不依靠硬件來提供高可用性。文章來源:http://www.zghlxwxcb.cn/news/detail-789517.html
但MapReduce主要應(yīng)用于離線作業(yè),無法作到秒級或者是亞秒級得數(shù)據(jù)響應(yīng)。且主要是針對靜態(tài)數(shù)據(jù)集,不能進(jìn)行流式計算。文章來源地址http://www.zghlxwxcb.cn/news/detail-789517.html
到了這里,關(guān)于分布式計算平臺 Hadoop 簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!