溫馨提示×

溫馨提示×

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

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

HDFS讀寫的示例分析

發布時間:2021-12-09 11:36:50 來源:億速云 閱讀:139 作者:小新 欄目:大數據

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

一、HDFS讀寫之前提

  NameNode(元數據節點):存放元數據(名稱空間、副本數、權限、塊列表、集群配置信息),不包含數據節點。元數據節點將文件系統元數據存儲在內存中。

  1.DataNode(數據節點):真正存儲數據的地方,以數據塊為單位。默認數據塊大小為128M。數據節點周期性的將所有存儲塊信息發送給元數據節點??蛻舳送ㄟ^和NameNode節點溝通后,再向數據節點對數據讀出或寫入。

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

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

  值得注意的是:

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

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

二、HDFS中的寫流程:

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

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

  3.client請求第一個 block該傳輸到哪些datanode服務器上。

  4.namenode返回3個datanode服務器ABC。

  5.client請求3臺dn中的一臺A上傳數據(本質上是一個RPC調用,建立pipeline),A收到請求會繼續調用B,然后B調用C,將真個pipeline建立完成,逐級返回客戶端。

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

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

三、hdfs中的讀流程:

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

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

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女