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的狀態 由上可見,狀態是健康的 啟動所有資料節...