一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

HDFS (Hadoop)

 王老虎888 2014-07-08
引言 
    最近在研究Hadoop的HDFS分布式文件系統(tǒng),在網(wǎng)上找了一些資料,稍微整理了下,并對HDFS分布式存儲進(jìn)行了簡單的存儲測試,跟FTP服務(wù)器存儲進(jìn)行了對比,測試數(shù)據(jù)在文檔后面?,F(xiàn)在先來了解下什么是Hadoop吧! 

什么是Hadoop?
 
    Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點。但同時,它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束,來實現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。HDFS在最開始是作為Apache Nutch搜索引擎項目的基礎(chǔ)架構(gòu)而開發(fā)的。HDFS是Apache Hadoop Core項目的一部分。這個項目的地址是http://hadoop./core/。 

Hadoop框架中最核心的設(shè)計就是:MapReduce和HDFS。 

MapReduce
 
    MapReduce的思想是由Google發(fā)表的一篇論文GFS、MapReduce所提及而被廣為流傳的,簡單的一句話解釋MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。MapReduce從它名字上來看就大致可以看出個緣由,兩個動詞Map和Reduce,“Map(展開)”就是將一個任務(wù)分解成為多個任務(wù),“Reduce”就是將分解后多任務(wù)處理的結(jié)果匯總起來,得出最后的分析結(jié)果。這不是什么新思想,其實在多線程,多任務(wù)的設(shè)計就可以找到這種思想的影子。不論是現(xiàn)實社會,還是在程序設(shè)計中,一項工作往往可以被拆分成為多個任務(wù),任務(wù)之間的關(guān)系可以分為兩種:一種是不相關(guān)的任務(wù),可以并行執(zhí)行;另一種是任務(wù)之間有相互的依賴,先后順序不能夠顛倒,這類任務(wù)是無法并行處理的。在分布式系統(tǒng)中,機(jī)器集群就可以看作硬件資源池,將并行的任務(wù)拆分,然后交由每一個空閑機(jī)器資源去處理,能夠極大地提高計算效率,同時這種資源無關(guān)性,對于計算集群的擴(kuò)展無疑提供了最好的設(shè)計保證。(廉價的機(jī)器群可以匹敵任何高性能的計算機(jī),縱向擴(kuò)展的曲線始終敵不過橫向擴(kuò)展的斜線)。任務(wù)分解處理以后,那就需要將處理以后的結(jié)果再匯總起來,這就是Reduce要做的工作。 
    一個Map/Reduce 作業(yè)(job) 通常會把輸入的數(shù)據(jù)集切分為若干獨立的數(shù)據(jù)塊,由 map任務(wù)(task)以完全并行的方式處理它們??蚣軙ap的輸出先進(jìn)行排序,然后把結(jié)果輸入給reduce任務(wù)。通常作業(yè)的輸入和輸出都會被存儲在文件系統(tǒng)中。 整個框架負(fù)責(zé)任務(wù)的調(diào)度和監(jiān)控,以及重新執(zhí)行已經(jīng)失敗的任務(wù)。 
Map/Reduce框架由一個單獨的master JobTracker 和每個集群節(jié)點一個slave TaskTracker共同組成。master負(fù)責(zé)調(diào)度構(gòu)成一個作業(yè)的所有任務(wù),這些任務(wù)分布在不同的slave上,master監(jiān)控它們的執(zhí)行,重新執(zhí)行已經(jīng)失敗的任務(wù)。而slave僅負(fù)責(zé)執(zhí)行由master指派的任務(wù)。 
mapreduce例子:http://www./code/mapred.html 

HDFS分布式文件系統(tǒng)
 
    HDFS是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)的縮寫,為分布式計算存儲提供了底層支持。HDFS的設(shè)計思想:構(gòu)建一個非常龐大的分布式文件系統(tǒng)。在集群中節(jié)點失效是正常的,節(jié)點的數(shù)量在Hadoop中不是固定的.單一的文件命名空間,保證數(shù)據(jù)的一致性,寫入一次多次讀取.典型的64MB的數(shù)據(jù)塊大小,每一個數(shù)據(jù)塊在多個 DN(DataNode)有復(fù)制.客戶端通過NN(NameNode)得到數(shù)據(jù)塊的位置,直接訪問DN獲取數(shù)據(jù)。 

 
從這張圖中可以看出,一個文件其實被分成一個或多個數(shù)據(jù)塊(Block),這些塊存儲在一組Datanode上。Namenode執(zhí)行文件系統(tǒng)的名字空間操作,比如打開、關(guān)閉、重命名文件或目錄,它也負(fù)責(zé)確定數(shù)據(jù)塊到具體Datanode節(jié)點的映射。Datanode負(fù)責(zé)處理文件系統(tǒng)客戶端的讀寫請求,在 Namenode的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制。 

NameNode功能 
    映射一個文件到一批的塊,映射數(shù)據(jù)塊到DN節(jié)點上。集群配置管理,數(shù)據(jù)塊的管理和復(fù)制。處理事務(wù)日志:記錄文件生成,刪除等。因為NameNode的全部的元數(shù)據(jù)在內(nèi)存中存儲,所以NN的內(nèi)存大小決定整個集群的存儲量。 
NN內(nèi)存中保存的數(shù)據(jù): 
1. 文件列表 
2. 每一個文件的塊列表 
3. 每一個DN中塊的列表 
4. 文件屬性:生成時間,復(fù)制參數(shù),文件許可(ACL) 

Secondary Namenode的功能
 
    Secondary Namenode是一個讓人混淆的名字,其實Secondary Namenode是一個輔助NN處理FsImage和事務(wù)日志的Server,它從NN拷貝FsImage和事務(wù)日志到臨時目錄,合并FsImage和事務(wù)日志生成一個新的FsImage,上傳新的FsImage到NN上,NN更新FsImage并清理原來的事務(wù)日志。 

DataNode功能 
    在本地文件系統(tǒng)存儲數(shù)據(jù)塊,存儲數(shù)據(jù)塊的元數(shù)據(jù),用于CRC校驗。響應(yīng)客戶端對數(shù)據(jù)塊和元數(shù)據(jù)的請求。周期性的向NN報告這個DN存儲的所有數(shù)據(jù)塊信息??蛻舳艘鎯?shù)據(jù)時從NN獲取存儲數(shù)據(jù)塊的DN位置列表,客戶端發(fā)送數(shù)據(jù)塊到第一個DN上,第一個DN收到數(shù)據(jù)通過管道流的方式把數(shù)據(jù)塊發(fā)送到另外的DN 上。當(dāng)數(shù)據(jù)塊被所有的節(jié)點寫入后,客戶端繼續(xù)發(fā)送下一個數(shù)據(jù)塊。DN每3秒鐘發(fā)送一個心跳到NN,如果NN沒有收到心跳在重新嘗試后宣告這個DN失效。當(dāng) NN察覺到DN節(jié)點失效了,選擇一個新的節(jié)點復(fù)制丟失的數(shù)據(jù)塊。 
數(shù)據(jù)塊的放置位置和數(shù)據(jù)正確性: 
    在典型的配置里,數(shù)據(jù)塊一個放在當(dāng)前的節(jié)點,一個放在遠(yuǎn)程的機(jī)架上的一個節(jié)點,一個放在相同機(jī)架上的一個節(jié)點,多于3個的數(shù)據(jù)塊隨意選擇放置。客戶端選擇最近的一個節(jié)點讀取數(shù)據(jù)。Hadoop使用CRC32效驗數(shù)據(jù)的正確性,客戶端每512個byte計算一次效驗,DN負(fù)責(zé)存儲效驗數(shù)據(jù)。客戶端從DN獲取數(shù)據(jù)和效驗數(shù)據(jù),如果效驗出錯,客戶端嘗試另外節(jié)點上復(fù)制的數(shù)據(jù)。 

HDFS如何存儲?
 
    流水線復(fù)制:當(dāng)客戶端向HDFS文件寫入數(shù)據(jù)的時候,一開始是寫到本地臨時文件中。假設(shè)該文件的副本系數(shù)設(shè)置為3,當(dāng)本地臨時文件累積到一個數(shù)據(jù)塊的大小時,客戶端會從Namenode獲取一個Datanode列表用于存放副本。然后客戶端開始向第一個Datanode傳輸數(shù)據(jù),第一個Datanode一小部分一小部分(4 KB)地接收數(shù)據(jù),將每一部分寫入本地倉庫,并同時傳輸該部分到列表中第二個Datanode節(jié)點。第二個Datanode也是這樣,一小部分一小部分地接收數(shù)據(jù),寫入本地倉庫,并同時傳給第三個Datanode。最后,第三個Datanode接收數(shù)據(jù)并存儲在本地。因此,Datanode能流水線式地從前一個節(jié)點接收數(shù)據(jù),并在同時轉(zhuǎn)發(fā)給下一個節(jié)點,數(shù)據(jù)以流水線的方式從前一個Datanode復(fù)制到下一個。 

HDFS 存儲測試
 
測試環(huán)境: 

服務(wù)器:Linux 
masters:192.168.4.128 
slaves:192.168.4.128、192.168.4.42 

 

結(jié)論 
以上這份測試報告是對HDFS分布式文件系統(tǒng)的存儲測試,分別對HDFS和ftp服務(wù)器進(jìn)行了測試比較,從上面的測試結(jié)果可以看出: 
1. 對于寫入操作HDFS明顯比FTP服務(wù)器要慢。 
2. 在一定機(jī)器數(shù)的集群范圍內(nèi),是可以提高寫入速度的。 
3. HDFS適合在大量計算機(jī)組成的大規(guī)模集群上應(yīng)用。 
… 



相關(guān)資料: 
hadoop文檔:http://hadoop./common/docs/r0.18.2/cn/index.html 
ibm文章:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/ 
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop2/index.html 
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/ 

其他:http://shoufuban.net/relevant/08/0311/14/14474_1110355.shtml 
http://www./wiki/Running_Hadoop_On_Ubuntu_Linux_(Multi-Node_Cluster) 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩特级黄片免费在线观看| 国产欧美日韩不卡在线视频| 熟妇久久人妻中文字幕| 在线欧美精品二区三区| 大香蕉精品视频一区二区| 扒开腿狂躁女人爽出白浆av | 麻豆看片麻豆免费视频| 亚洲国产四季欧美一区| 色婷婷国产熟妇人妻露脸| 国产精品二区三区免费播放心 | 日韩在线免费看中文字幕| 欧美精品中文字幕亚洲| 欧美黑人巨大一区二区三区| 日本一区不卡在线观看| 国产福利一区二区久久| 国产成人精品午夜福利| 操白丝女孩在线观看免费高清| 91日韩在线观看你懂的| 日本深夜福利在线播放| 五月综合婷婷在线伊人| 日本午夜免费观看视频| 久热久热精品视频在线观看| 国产毛片不卡视频在线| 丰满人妻熟妇乱又伦精另类视频 | 久久精品国产99精品最新| 都市激情小说在线一区二区三区| 日韩在线视频精品视频| 一区中文字幕人妻少妇| 伊人欧美一区二区三区| 日韩在线中文字幕不卡| 国产精品美女午夜福利| 国产精品久久香蕉国产线| 亚洲二区欧美一区二区| 国产精品一区欧美二区| 日韩欧美好看的剧情片免费| 日本人妻的诱惑在线观看| 日韩一本不卡在线观看| 国产精品一区二区三区日韩av| 亚洲av又爽又色又色| 99热九九热这里只有精品| 日本中文字幕在线精品|