HDFS系列(4) | HDFS文件讀寫流程

      網友投稿 769 2025-04-04

      本片博文,博主為大家帶來的是HDFS文件讀寫流程

      目錄

      1. HDFS的文件寫入過程

      2. HDFS的文件讀取過程

      1. HDFS的文件寫入過程

      詳細步驟解析:

      1、 client發起文件上傳請求,通過RPC與NameNode建立通訊,NameNode檢查目標文件是否已存在,父目錄是否存在,返回是否可以上傳;

      2、 client請求第一個block該傳輸到哪些DataNode服務器上;

      3、 NameNode根據配置文件中指定的備份數量及機架感知原理進行文件分配,返回可用的DataNode的地址如:A,B,C;

      注:Hadoop在設計時考慮到數據的安全與高效,數據文件默認在HDFS上存放三份,存儲策略為本地一份,同機架內其它某一節點上一份,不同機架的某一節點上一份。

      4、 client請求3臺DataNode中的一臺A上傳數據(本質上是一個RPC調用,建立pipeline),A收到請求會繼續調用B,然后B調用C,將整個pipeline建立完成,后逐級返回client;

      5、 client開始往A上傳第一個block(先從磁盤讀取數據放到一個本地內存緩存),以packet為單位(默認64K),A收到一個packet就會傳給B,B傳給C;A每傳一個packet會放入一個應答隊列等待應答。

      6、 數據被分割成一個個packet數據包在pipeline上依次傳輸,在pipeline反方向上,逐個發送ack(命令正確應答),最終由pipeline中第一個DataNode節點A將pipelineack發送給client;

      7、 當一個block傳輸完成之后,client再次請求NameNode上傳第二個block到服務器。

      2. HDFS的文件讀取過程

      詳細步驟解析:

      1、 Client向NameNode發起RPC請求,來確定請求文件block所在的位置;

      HDFS系列(4) | HDFS文件讀寫流程

      2、NameNode會視情況返回文件的部分或者全部block列表,對于每個block,NameNode 都會返回含有該 block 副本的 DataNode 地址; 這些返回的 DN 地址,會按照集群拓撲結構得出 DataNode 與客戶端的距離,然后進行排序,排序兩個規則:網絡拓撲結構中距離 Client 近的排靠前;心跳機制中超時匯報的 DN 狀態為 STALE,這樣的排靠后;

      3、 Client 選取排序靠前的 DataNode 來讀取 block,如果客戶端本身就是DataNode,那么將從本地直接獲取數據(短路讀取特性);

      4、 底層上本質是建立 Socket Stream(FSDataInputStream),重復的調用父類 DataInputStream 的 read 方法,直到這個塊上的數據讀取完畢;

      5、 當讀完列表的 block 后,若文件讀取還沒有結束,客戶端會繼續向NameNode 獲取下一批的 block 列表;

      6、 讀取完一個 block 都會進行 checksum 驗證,如果讀取 DataNode 時出現錯誤,客戶端會通知 NameNode,然后再從下一個擁有該 block 副本的DataNode 繼續讀。

      7、 read 方法是并行的讀取 block 信息,不是一塊一塊的讀取;NameNode 只是返回Client請求包含塊的DataNode地址,并不是返回請求塊的數據;

      8、 最終讀取來所有的 block 會合并成一個完整的最終文件。

      說明: 1、讀取完一個 block 都會進行 checksum 驗證,如果讀取 DataNode 時出現錯誤,客戶端會 通知 NameNode,然后再從下一個擁有該 block 副本的DataNode 繼續讀。 2、read 方法是并行的讀取 block 信息,不是一塊一塊的讀取;NameNode 只是返回Client請 求包含塊的DataNode地址,并不是返回請求塊的數據;

      1

      2

      3

      4

      5

      6

      本篇博文到這里就結束了,小伙伴們有什么疑惑或好的建議可以積極在評論區留言,博主會在后續繼續推出HDFS系列的其他內容,希望大家持續關注博主~~

      Hadoop

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:低代碼對銷售團隊有什么好處?
      下一篇:excel怎么使用vba快速重命名未打開的文件?
      相關文章
      亚洲私人无码综合久久网| 亚洲国产成人久久精品影视| 日产亚洲一区二区三区| 亚洲精品WWW久久久久久 | 亚洲性日韩精品一区二区三区 | 亚洲熟女综合色一区二区三区 | 亚洲精品中文字幕乱码三区| 亚洲精品人成无码中文毛片| 日韩精品电影一区亚洲| 蜜臀亚洲AV无码精品国产午夜.| 亚洲AV无码AV吞精久久| 亚洲av无码片vr一区二区三区| 亚洲国产精品无码久久| 亚洲AV无码一区二区一二区| 亚洲国产精品无码中文lv| 久久精品国产亚洲AV天海翼| 亚洲AV伊人久久青青草原 | 亚洲午夜精品久久久久久人妖| 国产成人无码综合亚洲日韩| 亚洲不卡中文字幕无码| 亚洲av无码乱码国产精品fc2| 亚洲AV日韩AV永久无码久久| 久久99亚洲网美利坚合众国| 亚洲白色白色永久观看| 亚洲国产日韩女人aaaaaa毛片在线 | 久久精品亚洲日本波多野结衣| 朝桐光亚洲专区在线中文字幕 | 人人狠狠综合久久亚洲| 国产av无码专区亚洲av毛片搜| 亚洲国产精品无码久久青草| 国产亚洲精品拍拍拍拍拍| 亚洲线精品一区二区三区影音先锋| 亚洲精品色午夜无码专区日韩| 亚洲AV中文无码乱人伦下载| 亚洲色偷偷av男人的天堂| 亚洲国产视频一区| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 亚洲成在人线av| 99人中文字幕亚洲区| 亚洲成人在线免费观看| 亚洲中文字幕一二三四区|