創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
為宿城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及宿城網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站建設(shè)、宿城網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!HDFS的基本原理有哪些?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
1、NameNode概述
NameNode是HDFS的核心,相信這一點(diǎn)大家都知道,所以NameNode也被稱為Master。NameNode僅存儲(chǔ)HDFS的元數(shù)據(jù):文件系統(tǒng)中所有文件的目錄樹,并跟蹤整個(gè)集群中的文件。NameNode不存儲(chǔ)實(shí)際數(shù)據(jù)或數(shù)據(jù)集。數(shù)據(jù)本身實(shí)際存儲(chǔ)在DataNodes中。NameNode知道HDFS中任何給定文件的塊列表及其位置。使用此信息NameNode知道如何從塊中構(gòu)建文件。NameNode并不持久化存儲(chǔ)每個(gè)文件中各個(gè)塊所在的 DataNode 的位置信息,這些信息會(huì)在系統(tǒng)啟動(dòng)時(shí)從數(shù)據(jù)節(jié)點(diǎn)重建。NameNode對(duì)于HDFS至關(guān)重要,當(dāng)NameNode關(guān)閉時(shí),HDFS / Hadoop集群無法訪問。總結(jié)一下,NameNode是Hadoop集群中的單點(diǎn)故障。NameNode所在機(jī)器通常會(huì)配置有大量?jī)?nèi)存(RAM)。
2、DataNode概述
DataNode負(fù)責(zé)將實(shí)際數(shù)據(jù)存儲(chǔ)在HDFS中。DataNode也稱為Slave。NameNode和DataNode會(huì)保持不斷通信。DataNode啟動(dòng)時(shí),它將自己發(fā)布到NameNode并匯報(bào)自己負(fù)責(zé)持有的塊列表。當(dāng)某個(gè)DataNode關(guān)閉時(shí),它不會(huì)影響數(shù)據(jù)或群集的可用性。NameNode將安排由其他DataNode管理的塊進(jìn)行副本復(fù)制。DataNode所在機(jī)器通常配置有大量的硬盤空間。因?yàn)閷?shí)際數(shù)據(jù)存儲(chǔ)DataNode中。DataNode會(huì)定期向NameNode發(fā)送心跳,如果NameNode長(zhǎng)時(shí)間沒有接受到DataNode發(fā)送的心跳, NameNode就會(huì)認(rèn)為該DataNode失效。block匯報(bào)時(shí)間間隔取參數(shù)dfs.blockreport.intervalMsec,參數(shù)未配置的話默認(rèn)為6小時(shí)。
3、HDFS的工作機(jī)制
NameNode負(fù)責(zé)管理整個(gè)文件系統(tǒng)元數(shù)據(jù);DataNode負(fù)責(zé)管理具體文件數(shù)據(jù)塊存儲(chǔ);Secondary NameNode協(xié)助NameNode進(jìn)行元數(shù)據(jù)的備份。HDFS的內(nèi)部工作機(jī)制對(duì)客戶端保持透明,客戶端請(qǐng)求訪問HDFS都是通過向NameNode申請(qǐng)來進(jìn)行。HDFS寫數(shù)據(jù)流程和HDFS讀數(shù)據(jù)流程總結(jié)如下:
(1)HDFS寫數(shù)據(jù)流程
A.client發(fā)起文件上傳請(qǐng)求,通過RPC與NameNode建立通訊,NameNode檢查目標(biāo)文件是否已存在,父目錄是否存在,返回是否可以上傳;
B.client請(qǐng)求第一個(gè)block該傳輸?shù)侥男〥ataNode服務(wù)器上;
C.NameNode根據(jù)配置文件中指定的備份數(shù)量及副本放置策略進(jìn)行文件分配,返回可用的DataNode的地址,如:A、B、C;
D.client請(qǐng)求3臺(tái)DataNode中的一臺(tái)A上傳數(shù)據(jù)(本質(zhì)上是一個(gè)RPC調(diào)用,建立pipeline),A收到請(qǐng)求會(huì)繼續(xù)調(diào)用B,然后B調(diào)用C,將整個(gè)pipeline建立完成,后逐級(jí)返回client;
E.client開始往A上傳第一個(gè)block,以packet為單位(默認(rèn)64K),A收到一個(gè)packet就會(huì)傳給 B,B 傳給 C;A 每傳一個(gè)packet會(huì)放入一個(gè)應(yīng)答隊(duì)列等待應(yīng)答。
F.?dāng)?shù)據(jù)被分割成一個(gè)個(gè)packet數(shù)據(jù)包在pipeline上依次傳輸,在pipeline反方向上,逐個(gè)發(fā)送ack(命令正確應(yīng)答),最終由pipeline中第一個(gè)DataNode節(jié)點(diǎn)A將pipeline ack發(fā)送給client;
G.當(dāng)一個(gè)block傳輸完成之后,client再次請(qǐng)求NameNode上傳第二個(gè)block到服務(wù)器。
(2)HDFS讀數(shù)據(jù)流程
A、Client 向 NameNode 發(fā)起 RPC 請(qǐng)求,來確定請(qǐng)求文件 block 所在的位置;
B.NameNode 會(huì)視情況返回文件的部分或者全部block 列表,對(duì)于每個(gè)block,NameNode 都會(huì)返回含有該block副本的DataNode地址;
C.這些返回的DN地址,會(huì)按照集群拓?fù)浣Y(jié)構(gòu)得出 DataNode 與客戶端的距離,然后進(jìn)行排序,排序兩個(gè)規(guī)則:網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中距離 Client 近的排靠前;心跳機(jī)制中超時(shí)匯報(bào)的DN 狀態(tài)為STALE,這樣的排靠后;
D.Client 選取排序靠前的DataNode來讀取block,如果客戶端本身就是DataNode,那么將從本地直接獲取數(shù)據(jù);
E.底層上本質(zhì)是建立Socket Stream(FSDataInputStream),重復(fù)的調(diào)用父類DataInputStream的read方法,直到這個(gè)塊上的數(shù)據(jù)讀取完畢;
F.當(dāng)讀完列表的block后,若文件讀取還沒有結(jié)束,客戶端會(huì)繼續(xù)向NameNode獲取下一批的block列表;
G.讀取完一個(gè)block都會(huì)進(jìn)行checksum驗(yàn)證,如果讀取DataNode時(shí)出現(xiàn)錯(cuò)誤,客戶端會(huì)通知 NameNode,然后再從下一個(gè)擁有該block副本的DataNode繼續(xù)讀。
H.read 方法是并行的讀取block信息,不是一塊一塊的讀?。籒ameNode只是返回Client 請(qǐng)求包含塊的DataNode地址,并不是返回請(qǐng)求塊的數(shù)據(jù);
I.最終讀取來所有的block會(huì)合并成一個(gè)完整的最終文件。
看完上述內(nèi)容,你們掌握HDFS的基本原理有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
新聞名稱:HDFS的基本原理有哪些-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://aaarwkj.com/article0/pjcoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、Google、云服務(wù)器、網(wǎng)站內(nèi)鏈、小程序開發(fā)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容