中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

HDFS的讀寫流程是什么

發布時間:2022-02-19 10:22:57 來源:億速云 閱讀:139 作者:iii 欄目:開發技術

今天小編給大家分享一下HDFS的讀寫流程是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

HDFS的讀寫流程是什么

1.讀文件的流程

HDFS的讀寫流程是什么

如圖所示,讀文件的流程主要包括以下6個步驟:

  1. 打開分布式文件:調用分布式文件 DistributedFileSystem.open( ) 方法;
  2. 尋址請求:從 NameNode 處得到 DataNode 的地址,DistributedFileSystem使用 RPC 方式調用了NameNode,NameNode 返回存有該副本的DataNode 地址,DistributedFileSystem 返回了一個輸入流對象(FSDataInputStream),該對象封裝了輸入流 DFSInputStream;
  3. 連接到DataNode:調用輸入流 FSDataInputStream.read( ) 方法從而讓DFSInputStream 連接到 DataNodes;
  4. 從 DataNode 中獲取數據:通過循環調用 read( ) 方法,從而將數據從 DataNode 傳輸到客戶端;
  5. 讀取另外的 DataNode 直到完成:到達塊的末端時候,輸入流 DFSInputStream 關閉與 DataNode 連接, 尋找下一個 DataNode;
  6. 完成讀取,關閉連接:即調用輸入流 FSDataInputStream.close( );

2.寫文件流程

HDFS的讀寫流程是什么
  1. 發送創建文件請求:調用分布式文件系統 DistributedFileSystem.create( )方法;
  2. NameNode 創建文件記錄:分布式文件系統 DistributedFileSystem 發送 RPC 請求給 NameNode,NameNode 檢查權限后創建一條記錄,返回輸出流 FSDataOutputStream,封裝了輸出流 DFSOutputDtream;
  3. 客戶端寫入數據:輸出流 DFSOutputDtream 將數據分成一個個的數據包,并寫入內部隊列。DataStreamer 根據 DataNode 列表來要求 NameNode 分配適合的新塊來存儲數據備份。 一組 DataNode 構成管線(管線的 DataNode 之間使用 Socket 流式通信);
  4. 使用管線傳輸數據:DataStreamer 將數據包流式傳輸到管線第一個DataNode,第一個 DataNode 再傳到第二個DataNode,直到完成;
  5. 確認隊列:DataNode 收到數據后發送確認,管線的 DataNode 所有的確認組成一個確認隊列。所有 DataNode 都確認,管線數據包刪除;
  6. 關閉:客戶端對數據量調用 close( ) 方法。將剩余所有數據寫入DataNode管線,聯系NameNode并且發送文件寫入完成信息之前等待確認;
  7. NameNode確認:
  8. 故障處理:若過程中發生故障,則先關閉管線,把隊列中所有數據包添加回去隊列,確保數據包不漏。為另一個正常 DataNode 的當前數據塊指定一個新的標識,并將該標識傳送給 NameNode,一遍故障 DataNode 在恢復后刪除上面的不完整數據塊。從管線中刪除故障 DataNode 并把余下的數據塊寫入余下正常的 DataNode。NameNode 發現復本兩不足時,會在另一個節點創建一個新的復本;

在數據的讀取過程中難免碰到網絡故障,臟數據,DataNode 失效等問題,這些問題 HDFS 在設計的時候都早已考慮到了。下面來介紹一下數據損壞處理流程:

  • 當 DataNode 讀取 block 的時候,它會計算 checksum。
  • 如果計算后的 checksum,與 block 創建時值不一樣,說明該 block 已經損壞。
  • Client 讀取其它 DataNode上的 block。
  • NameNode 標記該塊已經損壞,然后復制 block 達到預期設置的文件備份數 。
  • DataNode 在其文件創建后驗證其 checksum。

以上就是“HDFS的讀寫流程是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

靖安县| 廉江市| 保靖县| 额尔古纳市| 肇庆市| 盱眙县| 交城县| 乌拉特前旗| 搜索| 谢通门县| 东明县| 车致| 辽宁省| 白玉县| 阿图什市| 山东省| 浪卡子县| 报价| 大石桥市| 临湘市| 通渭县| 墨江| 海伦市| 都昌县| 大丰市| 偃师市| 辉县市| 宝清县| 博客| 大厂| 文昌市| 舒城县| 呼图壁县| 武汉市| 乌拉特后旗| 宿松县| 高碑店市| 刚察县| 宜丰县| 营山县| 河津市|