溫馨提示×

溫馨提示×

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

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

HDFS讀寫流程簡介

發布時間:2020-07-17 06:25:05 來源:網絡 閱讀:2198 作者:wangkunj 欄目:大數據

前言:

HDFS 是一個能夠面向大規模數據使用的,可進行擴展的文件存儲與傳遞系統。是一種允許文件通過網絡在多臺主機上分享的文件系統,可讓多機器上的多用戶分享文件和 存儲空間。讓實際上是通過網絡來訪問文件的動作,由程序與用戶看來,就像是訪問本地的磁盤一般。即使系統中有某些節點脫機,整體來說系統仍然可以持續運作 而不會有數據損失。

HDFS寫流程:
  • 1.初始化FileSystem,客戶端調用create()來創建文件
  • 2.FileSystem用RPC調用元數據節點,在文件系統的命名空間中創建一個新的文件,元數據節點首先確定文件原來不存在,并且客戶端有創建文件的權限,然后創建新文件。
  • 3.FileSystem返回DFSOutputStream,客戶端用于寫數據,客戶端開始寫入數據。
  • 4.DFSOutputStream將數據分成塊,寫入data queue。data queue由Data Streamer讀取,并通知元數據節點分配數據節點,用來存儲數據塊(每塊默認復制3塊)。分配的數據節點放在一個pipeline里。Data Streamer將數據塊寫入pipeline中的第一個數據節點。第一個數據節點將數據塊發送給第二個數據節點。第二個數據節點將數據發送給第三個數據節點。
  • 5.DFSOutputStream為發出去的數據塊保存了ack queue,等待pipeline中的數據節點告知數據已經寫入成功。
  • 6.當客戶端結束寫入數據,則調用stream的close函數。此操作將所有的數據塊寫入pipeline中的數據節點,并等待ack queue返回成功。最后通知元數據節點寫入完畢。
  • 7.如果數據節點在寫入的過程中失敗,關閉pipeline,將ack queue中的數據塊放入data queue的開始,當前的數據塊在已經寫入的數據節點中被元數據節點賦予新的標示,則錯誤節點重啟后能夠察覺其數據塊是過時的,會被刪除。失敗的數據節點從pipeline中移除,另外的數據塊則寫入pipeline中的另外兩個數據節點。元數據節點則被通知此數據塊是復制塊數不足,將來會再創建第三份備份。
    HDFS讀寫流程簡介
HDFS讀流程:
  • 1.初始化FileSystem,然后客戶端(client)用FileSystem的open()函數打開文件
  • 2.FileSystem用RPC調用元數據節點,得到文件的數據塊信息,對于每一個數據塊,元數據節點返回保存數據塊的數據節點的地址。
  • 3.FileSystem返回FSDataInputStream給客戶端,用來讀取數據,客戶端調用stream的read()函數開始讀取數據。
  • 4.DFSInputStream連接保存此文件第一個數據塊的最近的數據節點,data從數據節點讀到客戶端(client)
  • 5.當此數據塊讀取完畢時,DFSInputStream關閉和此數據節點的連接,然后連接此文件下一個數據塊的最近的數據節點。
  • 6.當客戶端讀取完畢數據的時候,調用FSDataInputStream的close函數。
  • 7.在讀取數據的過程中,如果客戶端在與數據節點通信出現錯誤,則嘗試連接包含此數據塊的下一個數據節點。

HDFS讀寫流程簡介

參考:
https://blog.csdn.net/gaijianwei/article/details/45918337
https://www.cnblogs.com/xubiao/p/5579080.html

向AI問一下細節

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

AI

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