2018-10-23
閱讀量:
1016
HDFS讀寫數據的過程有哪些?
讀:
1、跟namenode通信查詢元數據,找到文件塊所在的datanode服務器
2、挑選一臺datanode(就近原則,然后隨機)服務器,請求建立socket流
3、datanode開始發(fā)送數據(從磁盤里面讀取數據放入流,以packet為單位來做校驗)
4、客戶端以packet為單位接收,現在本地緩存,然后寫入目標文件
寫:
1、根namenode通信請求上傳文件,namenode檢查目標文件是否已存在,父目錄是否存在
2、namenode返回是否可以上傳
3、client請求第一個 block該傳輸到哪些datanode服務器上
4、namenode返回3個datanode服務器ABC
5、client請求3臺dn中的一臺A上傳數據(本質上是一個RPC調用,建立pipeline),A收到請求會繼續(xù)調用B,然后B調用C,將真?zhèn)€pipeline建立完成,逐級返回客戶端
6、client開始往A上傳第一個block(先從磁盤讀取數據放到一個本地內存緩存),以packet為單位,A收到一個packet就會傳給B,B傳給C;A每傳一個packet會放入一個應答隊列等待應答
7、當一個block傳輸完成之后,client再次請求namenode上傳第二個block的服務器。






評論(0)


暫無數據
推薦帖子
0條評論
1條評論
0條評論