欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:Hadoop之HDFS概述

柚子快報(bào)激活碼778899分享:Hadoop之HDFS概述

http://yzkb.51969.com/

Hadoop概述之HDFS

HDFS架構(gòu)概述優(yōu)缺點(diǎn)HDFS架構(gòu)HDFS文件塊大小HDFS的shell命令HDFS讀寫流程寫數(shù)據(jù)流程

HDFS讀數(shù)據(jù)流程N(yùn)ameNode 和 SecondaryNameNode工作機(jī)制DataNode工作機(jī)制DataNode數(shù)據(jù)完整性如何保證

端口名稱Hadoop2.xHadoop3.xNameNode內(nèi)部通信端口8020/9000NameNode HTTP UI500709870MapReduce查看執(zhí)行任務(wù)端口80888088歷史服務(wù)器通信端口1988819888

HDFS架構(gòu)概述

Hadoop Distributed File System,簡稱HDFS,是一個分布式文件系統(tǒng)。

隨著數(shù)據(jù)量越來越大,在一個操作系統(tǒng)存不下所有的數(shù)據(jù),那么就分配到更多的操作系統(tǒng)管理的磁盤中,但是不方便管理和維護(hù),迫切需要一種系統(tǒng)來管理多臺機(jī)器上的文件,這就是分布式文件管理系統(tǒng)。HDFS只是分布式文件管理系統(tǒng)中的一種。

HDFS的使用場景:適合一次寫入,多次讀出的場景。一個文件經(jīng)過創(chuàng)建、寫入和關(guān)閉之后就不需要改變。

優(yōu)缺點(diǎn)

優(yōu)點(diǎn) 1)高容錯性

數(shù)據(jù)自動保存多個副本。它通過增加副本的形式,提高容錯性。 2)適合處理大數(shù)據(jù)

數(shù)據(jù)規(guī)模:能夠處理數(shù)據(jù)規(guī)模達(dá)到GB、TB、甚至PB級別的數(shù)據(jù); 文件規(guī)模:能夠處理百萬規(guī)模以上的文件數(shù)量,數(shù)量相當(dāng)之大。 3)可構(gòu)建在廉價(jià)機(jī)器上,通過多副本機(jī)制,提高可靠性。

缺點(diǎn) 1)不適合低延時數(shù)據(jù)訪問,比如毫秒級的存儲數(shù)據(jù),是做不到的。

2)無法高效的對大量小文件進(jìn)行存儲。

存儲大量小文件的話,它會占用NameNode大量的內(nèi)存來存儲文件目錄和塊信息。這樣是不可取的,因?yàn)镹ameNode的內(nèi)存總是有限的; 小文件存儲的尋址時間會超過讀取時間,它違反了HDFS的設(shè)計(jì)目標(biāo)。 3)不支持并發(fā)寫入、文件隨機(jī)修改。

一個文件只能有一個寫,不允許多個線程同時寫; 僅支持?jǐn)?shù)據(jù)append(追加),不支持文件的隨機(jī)修改。

HDFS架構(gòu)

包含以下三個組件:

1)NameNode(nn):就是Master,它是一個主管、管理者。

(1)管理HDFS的名稱空間;

(2)配置副本策略;

(3)管理數(shù)據(jù)塊(Block)映射信息;

(4)處理客戶端讀寫請求。

2)DataNode:就是Slave。NameNode下達(dá)命令,DataNode執(zhí)行實(shí)際的操作。

(1)存儲實(shí)際的數(shù)據(jù)塊;

(2)執(zhí)行數(shù)據(jù)塊的讀/寫操作。

3)Client:就是客戶端。

(1)文件切分。文件上傳HDFS的時候,Client將文件切分成一個一個的Block,然后進(jìn)行上傳;

(2)與NameNode交互,獲取文件的位置信息;

(3)與DataNode交互,讀取或者寫入數(shù)據(jù);

(4)Client提供一些命令來管理HDFS,比如NameNode格式化;

(5)Client可以通過一些命令來訪問HDFS,比如對HDFS增刪查改操作;

4)Secondary NameNode:并非NameNode的熱備。當(dāng)NameNode掛掉的時候,它并不能馬上替換NameNode并提供服務(wù)。

(1)輔助NameNode,分擔(dān)其工作量,比如定期合并Fsimage和Edits,并推送給NameNode ;

(2)在緊急情況下,可輔助恢復(fù)NameNode。

HDFS文件塊大小

HDFS中的文件在物理上是分塊存儲(Block),塊的大小可以通過配置參數(shù)( dfs.blocksize)來規(guī)定,默認(rèn)大小在Hadoop2.x/3.x版本中是128M,1.x版本中是64M。

思考:為什么塊的大小不能設(shè)置太小,也不能設(shè)置太大? (1)HDFS的塊設(shè)置太小,會增加尋址時間,程序一直在找塊的開始位置;(2)如果塊設(shè)置的太大,從磁盤傳輸數(shù)據(jù)的時間會明顯大于定位這個塊開始位置所需的時間。導(dǎo)致程序在處理這塊數(shù)據(jù)時,會非常慢。 總結(jié):HDFS塊的大小設(shè)置主要取決于磁盤傳輸速率。

HDFS的shell命令

HDFS shell命令基本以hadoop fs開頭,輸入hadoop fs會看到對應(yīng)指令和說明

hadoop fs #查看指令說明

下面幾個例子可以看出,基本和linux上的命令相似

hadoop fs -mkdir /mydir #創(chuàng)建文件夾

hadoop fs -ls /mydir #查看目錄信息

hadoop fs -put ./demo.txt /mydir #上傳文件到hdfs上

hadoop fs -get /mydir /demo.txt ./demo.txt #下載hdfs文件到本地

hadoop fs -chmod 666 /mydir /demo.txt #修改文件權(quán)限

HDFS讀寫流程

寫數(shù)據(jù)流程

(1)客戶端通過Distributed FileSystem模塊向NameNode請求上傳文件,NameNode檢查目標(biāo)文件是否已存在,父目錄是否存在。

(2)NameNode返回是否可以上傳。

(3)客戶端請求第一個 Block上傳到哪幾個DataNode服務(wù)器上。

(4)NameNode返回3個DataNode節(jié)點(diǎn),分別為dn1、dn2、dn3。

(5)客戶端通過FSDataOutputStream模塊請求dn1上傳數(shù)據(jù),dn1收到請求會繼續(xù)調(diào)用dn2,然后dn2調(diào)用dn3,將這個通信管道建立完成。

(6)dn1、dn2、dn3逐級應(yīng)答客戶端。

(7)客戶端開始往dn1上傳第一個Block(先從磁盤讀取數(shù)據(jù)放到一個本地內(nèi)存緩存),以Packet為單位,dn1收到一個Packet就會傳給dn2,dn2傳給dn3;dn1每傳一個packet會放入一個應(yīng)答隊(duì)列等待應(yīng)答。

(8)當(dāng)一個Block傳輸完成之后,客戶端再次請求NameNode上傳第二個Block的服務(wù)器。(重復(fù)執(zhí)行3-7步)。

在HDFS寫數(shù)據(jù)的過程中,NameNode會選擇距離待上傳數(shù)據(jù)最近距離的DataNode接收數(shù)據(jù)。那么這個最近距離怎么計(jì)算呢?

依據(jù)節(jié)點(diǎn)距離,及待上傳數(shù)據(jù)所在節(jié)點(diǎn)和DataNode所在節(jié)點(diǎn)距離。 不同數(shù)據(jù)中心節(jié)點(diǎn)距離=6; 同數(shù)據(jù)中心不同機(jī)架=4; 同機(jī)架不同節(jié)點(diǎn)=2; 相同節(jié)點(diǎn)=0;

HDFS讀數(shù)據(jù)流程

(1)客戶端通過DistributedFileSystem向NameNode請求下載文件,NameNode通過查詢元數(shù)據(jù),找到文件塊所在的DataNode地址。

(2)挑選一臺DataNode(就近原則,然后隨機(jī))服務(wù)器,請求讀取數(shù)據(jù)。

(3)DataNode開始傳輸數(shù)據(jù)給客戶端(從磁盤里面讀取數(shù)據(jù)輸入流,以Packet為單位來做校驗(yàn))。

(4)客戶端以Packet為單位接收,先在本地緩存,然后寫入目標(biāo)文件。

NameNode 和 SecondaryNameNode工作機(jī)制

思考:NameNode中的元數(shù)據(jù)是存儲在哪里的?

首先,我們做個假設(shè),如果存儲在NameNode節(jié)點(diǎn)的磁盤中,因?yàn)榻?jīng)常需要進(jìn)行隨機(jī)訪問,還有響應(yīng)客戶請求,必然是效率過低。因此,元數(shù)據(jù)需要存放在內(nèi)存中。但如果只存在內(nèi)存中,一旦斷電,元數(shù)據(jù)丟失,整個集群就無法工作了。因此產(chǎn)生在磁盤中備份元數(shù)據(jù)的FsImage。

這樣又會帶來新的問題,當(dāng)在內(nèi)存中的元數(shù)據(jù)更新時,如果同時更新FsImage,就會導(dǎo)致效率過低,但如果不更新,就會發(fā)生一致性問題,一旦NameNode節(jié)點(diǎn)斷電,就會產(chǎn)生數(shù)據(jù)丟失。因此,引入Edits文件(只進(jìn)行追加操作,效率很高)。每當(dāng)元數(shù)據(jù)有更新或者添加元數(shù)據(jù)時,修改內(nèi)存中的元數(shù)據(jù)并追加到Edits中。這樣,一旦NameNode節(jié)點(diǎn)斷電,可以通過FsImage和Edits的合并,合成元數(shù)據(jù)。

但是,如果長時間添加數(shù)據(jù)到Edits中,會導(dǎo)致該文件數(shù)據(jù)過大,效率降低,而且一旦斷電,恢復(fù)元數(shù)據(jù)需要的時間過長。因此,需要定期進(jìn)行FsImage和Edits的合并,如果這個操作由NameNode節(jié)點(diǎn)完成,又會效率過低。因此,引入一個新的節(jié)點(diǎn)SecondaryNamenode,專門用于FsImage和Edits的合并。

1)第一階段:NameNode啟動

(1)第一次啟動NameNode格式化后,創(chuàng)建Fsimage和Edits文件。如果不是第一次啟動,直接加載編輯日志和鏡像文件到內(nèi)存。

(2)客戶端對元數(shù)據(jù)進(jìn)行增刪改的請求。

(3)NameNode記錄操作日志,更新滾動日志。

(4)NameNode在內(nèi)存中對元數(shù)據(jù)進(jìn)行增刪改。

2)第二階段:Secondary NameNode工作

(1)Secondary NameNode詢問NameNode是否需要CheckPoint。直接帶回NameNode是否檢查結(jié)果。

(2)Secondary NameNode請求執(zhí)行CheckPoint。

(3)NameNode滾動正在寫的Edits日志。

(4)將滾動前的編輯日志和鏡像文件拷貝到Secondary NameNode。

(5)Secondary NameNode加載編輯日志和鏡像文件到內(nèi)存,并合并。

(6)生成新的鏡像文件fsimage.chkpoint。

(7)拷貝fsimage.chkpoint到NameNode。

(8)NameNode將fsimage.chkpoint重新命名成fsimage。

DataNode工作機(jī)制

(1)一個數(shù)據(jù)塊在DataNode上以文件形式存儲在磁盤上,包括兩個文件,一個是數(shù)據(jù)本身,一個是元數(shù)據(jù)包括數(shù)據(jù)塊的長度,塊數(shù)據(jù)的校驗(yàn)和,以及時間戳。

(2)DataNode啟動后向NameNode注冊,通過后,周期性(6小時)的向NameNode上報(bào)所有的塊信息。

(3)心跳是每3秒一次,心跳返回結(jié)果帶有NameNode給該DataNode的命令如復(fù)制塊數(shù)據(jù)到另一臺機(jī)器,或刪除某個數(shù)據(jù)塊。如果超過10分鐘沒有收到某個DataNode的心跳,則認(rèn)為該節(jié)點(diǎn)不可用。

(4)集群運(yùn)行中可以安全加入和退出一些機(jī)器。

DataNode數(shù)據(jù)完整性如何保證

如下是DataNode節(jié)點(diǎn)保證數(shù)據(jù)完整性的方法。

(1)當(dāng)DataNode讀取Block的時候,它會計(jì)算CheckSum。

(2)如果計(jì)算后的CheckSum,與Block創(chuàng)建時值不一樣,說明Block已經(jīng)損壞。

(3)Client讀取其他DataNode上的Block。

(4)常見的校驗(yàn)算法crc(32),md5(128),sha1(160)

(5)DataNode在其文件創(chuàng)建后周期驗(yàn)證CheckSum。

柚子快報(bào)激活碼778899分享:Hadoop之HDFS概述

http://yzkb.51969.com/

文章來源

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18979409.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄