日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDFS的读/写流程

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDFS的读/写流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.HDFS讀流程

HDFS讀流程

1.1 、Client通過FileSystem.open(filePath)方法,與NN節點進行【rpc】協議通信,校驗是否有權限是否存在,假如都ok,返回該文件的部分或全部的block的列表(包含各個block塊的分布在DN地址的列表),也就是返回【FSDataInputStream】對象;
1.2、Clinet調用FSDataInputStream.read方法。
a.與第一個塊的最近的DN進行read,讀取完成后,會check,假如ok,會關閉與當前的DN的通信;假如失敗會記錄塊的這個副本+DN信息,向NN匯報這個塊副本損壞,下次就不會從這讀取。那么就去該塊的第二個DN的地址讀取
b.然后讀取第二個塊,步驟和a一樣
c.假如block列表讀取完成后,文件還未結束,那么FileSystem會從NN獲取下一批次的block的列表。
1.3、Client調用FSDataInputStream.close()方法,關閉輸入流。

2.HDFS寫流程

HDFS寫流程

?

2.1 、Client調用FileSystem.create(filePath)方法,與NN進行【rpc】通信,檢驗該路徑是否有權限創建是否文件存在,假如ok,就創建一個新的文件,但不關聯任何的block,返回一個【FSDataOutputStream】(假如不ok,直接返回錯誤)

2.2、 Client調用FSDataOutputStream.write方法
a.將第一個塊的第一個副本寫入DN1,第一個副本寫完傳輸給第二個DN2,第二個副本寫完就傳輸給第三個DN3,當第DN3寫完,就返回一個ack packet給DN2,DN2就返回ack packet給DN1,DN1就返回ack packet的FSDataOutputStream對象,標識第一個塊的三個副本都寫完了
b.余下的塊依次這樣

2.3、 當向文件寫入數據完成后,Client調用FSDataOutputStream.close()方法
關閉輸出流

2.4、 再調用FileSystem.complete()方法,告訴NN節點寫入成功。

總結

以上是生活随笔為你收集整理的HDFS的读/写流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。