溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HDFS讀寫的示例分析

發(fā)布時間:2021-12-09 11:36:50 來源:億速云 閱讀:128 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹了HDFS讀寫的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、HDFS讀寫之前提

  NameNode(元數(shù)據(jù)節(jié)點):存放元數(shù)據(jù)(名稱空間、副本數(shù)、權(quán)限、塊列表、集群配置信息),不包含數(shù)據(jù)節(jié)點。元數(shù)據(jù)節(jié)點將文件系統(tǒng)元數(shù)據(jù)存儲在內(nèi)存中。

  1.DataNode(數(shù)據(jù)節(jié)點):真正存儲數(shù)據(jù)的地方,以數(shù)據(jù)塊為單位。默認(rèn)數(shù)據(jù)塊大小為128M。數(shù)據(jù)節(jié)點周期性的將所有存儲塊信息發(fā)送給元數(shù)據(jù)節(jié)點??蛻舳送ㄟ^和NameNode節(jié)點溝通后,再向數(shù)據(jù)節(jié)點對數(shù)據(jù)讀出或?qū)懭搿?/p>

  2.SecondaryNameNode(從元數(shù)據(jù)節(jié)點):并不是元數(shù)據(jù)節(jié)點的備用節(jié)點,而是配合元數(shù)據(jù)節(jié)點工作,與元數(shù)據(jù)節(jié)點有不同的工作。SecondaryNameNode周期性地將元數(shù)據(jù)節(jié)點的命名空間鏡像文件和修改日志合并,幫助元數(shù)據(jù)節(jié)點將內(nèi)存中元數(shù)據(jù)信息存儲到磁盤上。

  3.Client(客戶端):客戶端就是需要獲取HDFS系統(tǒng)中文件的應(yīng)用程序和接口,引發(fā)HDFS的讀/寫等操作。

  值得注意的是:

  1.namenode實際客戶端只上傳一個datanode,其余兩個是namenode完成的。讓datenote自己復(fù)制的。然后復(fù)制完成以后逐級返回結(jié)果給namenode。如果2,3datanode復(fù)制失敗,再有namenode分配新的datanode地址。對于客戶端來說默認(rèn)上傳一個datanode就可以了,其余的由datanode自己復(fù)制。

  2.datanode切片是由客戶端完成的。datanode第二三個副本的上傳和第一個上傳是異步的。

二、HDFS中的寫流程:

  1.根namenode通信請求上傳文件,namenode檢查目標(biāo)文件是否已存在,父目錄是否存在。

  2.namenode返回是否可以上傳。

  3.client請求第一個 block該傳輸?shù)侥男ヾatanode服務(wù)器上。

  4.namenode返回3個datanode服務(wù)器ABC。

  5.client請求3臺dn中的一臺A上傳數(shù)據(jù)(本質(zhì)上是一個RPC調(diào)用,建立pipeline),A收到請求會繼續(xù)調(diào)用B,然后B調(diào)用C,將真?zhèn)€pipeline建立完成,逐級返回客戶端。

  6.client開始往A上傳第一個block(先從磁盤讀取數(shù)據(jù)放到一個本地內(nèi)存緩存),以packet為單位,A收到一個packet就會傳給B,B傳給C;A每傳一個packet會放入一個應(yīng)答隊列等待應(yīng)答。

  7.當(dāng)一個block傳輸完成之后,client再次請求namenode上傳第二個block的服務(wù)器。

三、hdfs中的讀流程:

  1.跟namenode通信查詢元數(shù)據(jù),找到文件塊所在的datanode服務(wù)器。

  2.挑選一臺datanode(就近原則,然后隨機(jī))服務(wù)器,請求建立socket流。

  3.datanode開始發(fā)送數(shù)據(jù)。(從磁盤里面讀取數(shù)據(jù)放入流,以packet為單位來做校驗)

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“HDFS讀寫的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI