從HDFS檔案系統中讀寫檔案原理

2021-08-28 02:16:26 字數 1019 閱讀 7195

1、客戶端發起請求要寫檔案 /aa/jdk.tgz

2、namenode會檢查該目錄是否存在,返回是否可寫

3、客戶端請求寫入第乙個block

4、namenode返回3個datanode主機

5、挑選dn1,請求建立傳輸資料的連線,建立socket連線,請求帶有引數,告訴dn1要傳輸給多少臺機器

6、7、dn1收到請求後與其他機器建立資料傳輸鏈路

8、9、其他機器響應dn1

10、dn1響應給客戶端已經準備好了

11、傳輸第乙個block資料帶有id、從本地檔案輸入流中抽取資料而且是從0偏移量開始讀,一邊讀一邊通過網路輸出流傳輸給dn1,dn1通過網路輸入流接受資料,通過本地檔案輸出流寫入到磁碟中,dn1一邊接受byte位元組資料一邊用網路輸出流寫道dn2上,dn2的接受資料同dn1的一樣,dn3也是同理

12、重複步驟3-11

13、資料全部寫完後,告知namenode

14、namenode會確認記錄元資料

細節:如果寫入某個datanode失敗,資料會繼續寫入其他的datanode。然後namenode會找另外乙個好的datanode繼續複製,以保證冗餘性;

1、客戶端向namenode發起請求,請求讀取/aaa/jdk.tgz資料

2、namenode返回元資料資訊,主要返回block存放的datanode

3、挑選一台datanode(就近原則),請求建立socket流 ,請求讀取block資料,

從datanode的本地檔案輸入流開始讀資料,以二進位制的形式寫到網路輸出流,

網路輸出流通過網路傳輸到客戶端, 客戶端通過網路輸入流接收資料,寫入到

本地檔案輸出流中,然後寫入目標檔案

4、重複3過程,直到讀取完全部的資訊,最終合成乙個檔案。

HDFS檔案系統

hdfs 是 hadoop distribute file system 的簡稱,意為 hadoop 分布式檔案系統。是hadoop 核心元件之一,作為最底層分布式儲存服務而存在。分布式檔案系統解決的問題就是大資料儲存。它們是橫跨在多台計算機上的儲存系統。分布式檔案系統在大資料時代有著廣泛的應用前景...

HDFS檔案系統總結

hdfs預設快大小128m hdfs小於乙個塊大小的檔案不會佔據整個塊空間 對檔案系統塊檢查 hdfs fsck files blocks namenode管理檔案系統的命名空間,維護者檔案系統及整顆樹內所有檔案和目錄,這些資訊以兩個檔案形式永久儲存在本地磁碟上 命名空間映象檔案和編輯日誌檔案,也記...

Hadoop 檔案系統(HDFS)

磁碟傳輸速率100m s,定址時間10ms,讓定址時間是傳輸時間的1 所以塊的大小為 100 0.01s 100m s 100m 128m 在 hdfs default.xml 中搜尋dfs.blocksize,可以修改大小 檔案上傳 檢查檔案block的狀態 由上可見,狀態是健康的 啟動所有資料節...