Hadoop的基礎(chǔ)架構(gòu)-創(chuàng)新互聯(lián)

Hadoop這個名字現(xiàn)在對很多開發(fā)者來說,并不陌生,但是很多開發(fā)者對其工作原理和架構(gòu)并不了解。Hadoop怎么實現(xiàn)的分布式存儲和分布式計算,其計算性能為什么會提高那么多。本文將從其基本工作原理方面解釋上上述問題,博主是初學(xué)者,不喜勿噴,還請前輩多多指教。

成都創(chuàng)新互聯(lián)公司專注于徐州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,商城系統(tǒng)網(wǎng)站開發(fā)。徐州網(wǎng)站建設(shè)公司,為徐州等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

一、Hadoop名字的起源

大家在網(wǎng)上搜索Hadoop關(guān)鍵字的時候,出現(xiàn)的圖片絕大多數(shù)是一頭可愛的***的小象,很多人并不理解這個分布式平臺和小象有什么關(guān)系。Hadoop是Apache公司對Google GFS(Google FileSystem)和MapReduce的開源實現(xiàn),該項目組的負責(zé)人Doug Cutting后來解釋說,其實“Hadoop”這個詞并不在字典中,是一個虛擬的詞,源于他的小兒子,他的小兒子有一個***的小象玩具,并且叫這個玩具Hadoop(發(fā)音類似),Doug Cutting覺得這個很有意思,簡單的拼寫,容易本人記住,并且不容易被用在別處,也沒有其他的意義,非常合適作為這個開源項目的名字,于是這個名字就被用上了,***小象也成了Hadoop的代名詞。

二、Hadoop是什么

首先了解一下什么是分布式計算,所謂的分布式計算,既是說把一個很負責(zé)計算或者一個計算量很大計算,拆分成由很多小型的計算同時進行,提高計算的效率,縮小時間成本。他是和集中式計算想對應(yīng)的,分布式計算往往和計算機集群聯(lián)系在一起,比較依賴計算資源。Hadoop比較官方的說法是,Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)(百度百科)。簡單的說,Hadoop就是分布式系統(tǒng)架構(gòu)中的一款產(chǎn)品,也是其中功能實現(xiàn)比較齊全、使用最方便和最廣泛的一款產(chǎn)品。

Hadoop主要是實現(xiàn)了分布式文件系統(tǒng)(HDFS)及其對應(yīng)分布式計算模型MapReduce。Hadoop可以部署在廉價的機器上,并且能保證高容錯性,計算機集群又能保證高數(shù)據(jù)吞吐量,并且能充分利用MapReduce分布式計算模型實現(xiàn)大批量數(shù)據(jù)計算,使得很多企業(yè)越來越傾向于使用Hadoop來開發(fā)自己的產(chǎn)品。

三、Hadoop的架構(gòu)

從Hadoop本身來說,如上述,Hadoop主要由兩部分組成,分布式文件系統(tǒng)HDFS和分布式計算模型MapReduce,HDFS位于Hadoop的底層,主要提供文獻存儲功能,其上層是MapReduce,其數(shù)據(jù)計算來源主要是HDFS中的數(shù)據(jù),計算完成的輸出結(jié)果往往也會保存到HDFS中,也可以保存在本地,這個后面會詳細介紹。

HDFS

從用戶client的角度來說,HDFS就像是一個普通的文件系統(tǒng),和Linux系統(tǒng)中的文件系統(tǒng)功能很相似,其文件操作也和linux系統(tǒng)的文件操作命令類似,所以,熟悉linux的朋友不會對Hadoop陌生,操作簡介方便這也是Hadoop被開發(fā)者廣泛接受的原因之一。

但是從系統(tǒng)的角度來說,并不是那么簡單,HDFS由很多臺服務(wù)器共同組成,多臺服務(wù)器共同完成分布式存儲功能。文件數(shù)據(jù)在其中是以block的方式存儲的,每一個block的大小默認是64M(可以修改配置更改),既是說一個大文件在存儲時會被切割成64M大小的block,存儲在HDFS中,結(jié)尾不足64M的部分獨占一個block,并且每一個block都默認有三個備份(可以修改配置更改備份數(shù)量),即數(shù)據(jù)冗余。HDFS有很多優(yōu)點:

易擴展:由于是部署在集群上的,所以其容量會隨著集群的擴張而擴展,如果配置高質(zhì)量的集群管理,擴展到千萬結(jié)點上也很輕松。

(1)高吞吐量:由于其和集群的密切關(guān)系,并且擴展性非常好,所以HDFS可以很輕松的存儲T級別或者更大量的數(shù)據(jù),只要集群裝得下。

(2)高可靠性:由于HDFS采用的數(shù)據(jù)冗余策略,每一個block都有備份,既是出現(xiàn)部分服務(wù)器宕機,也不會影響數(shù)據(jù)的完整性。

(3)高效性:由于其數(shù)據(jù)是分布式存儲的,并且block可以在結(jié)點之間快速移動,保持結(jié)點平衡,所以很高效的支持分布式計算。

(4)廉價:由于Hadoop的設(shè)計初衷就是在廉價的服務(wù)器上部署分布式計算,使得很多規(guī)模不大的小公司能夠承擔(dān)得起這方面的消費。

缺點:

HDFS不適合實時計算,其數(shù)據(jù)是一次寫入,多次讀取,并且數(shù)據(jù)訪問時間延遲比較大,其設(shè)計初衷是高吞吐量,所以就犧牲了實時性。

MapReduce

MapReduce是Hadoop的另外一個核心技術(shù):分布式計算,其實非常簡單,就是利用HDFS分布式存儲的特點,在此基礎(chǔ)上在每一個block或者文件邏輯單元上建立一個子計算,犧牲計算空間來換取計算時間。其計算模型分為兩個步驟,即Map(映射)和Reduce(集合),Map部分為每一條數(shù)據(jù)建立一個<key, value>映射并進行簡單的計算,Reduce部分將Map的輸出結(jié)果收集起來,形成輸出。具體內(nèi)容以后會詳細介紹。

從集群的角度來說,Hadoop是由NameNode,DataNode,SecondaryNameNode和Client組成,如下圖所示(圖片來源于百度百科):

Hadoop的基礎(chǔ)架構(gòu)

NameNode是Hadoop集群的主節(jié)點,也是集群的控制節(jié)點,SecondaryNameNode是二級主節(jié)點,可以理解為NameNode的備份,主節(jié)點掛掉時,SecondaryNameNode補上,作為主節(jié)點。主節(jié)點本身并不存儲大量數(shù)據(jù),也不提供計算資源,只是為集群提供命名空間,其中保存的有文件映射,即Metadata,通過這種方式找到文件系統(tǒng)中的文件。DataNode是集群中的數(shù)據(jù)結(jié)點,用于保存大批量數(shù)據(jù),和提供計算所需計算資源,MapReduce實際運行在DataNode中,NameNode只是控制作用。Client是客戶端。集群中通信是以TCP/IP的方式來完成的。

Hadoop的架構(gòu)先介紹到這里,后面有需要會補充,謝謝!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享文章:Hadoop的基礎(chǔ)架構(gòu)-創(chuàng)新互聯(lián)
標題路徑:http://muchs.cn/article20/dhipjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、App設(shè)計、標簽優(yōu)化企業(yè)網(wǎng)站制作、網(wǎng)站策劃、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計