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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hadoop文件写入

發布時間:2025/4/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop文件写入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉:http://blog.csdn.net/xiaoshunzi111/article/details/48198105

?

由上圖可知;寫入文件分為三個角色,分別是clientnode? namenode? 和datanode

cliennode本質為java虛擬機.namenode 和datanode則是Hadoop數據集群存儲塊

第一步:create實際是客戶端創建DistributedFileSystem實例化對象

第二步 create通過實例化對象錄取調用對象中create()方法,此方法訪問namenode,namenode收到命令,首先判斷datanode中所寫的文件是否有重復,然后在檢查namenode是否有可寫入空余的空間.當二者同時滿足是,namenode寫將datanode路徑信息,文件數等記錄,并確認信息返回DistributedFileSystem,否則返回異常,DistributedFileSystem收到確認信息后向客戶端返回一個FSDataOutputStream FSDataOutputStream對象

第三步:實例化FSDataOutputStream對象(該對象負責處理 datanode 和 namenode 之間的通信 ),調用該對象的write()方法,? 即是圖中write實現過程該對象負責處理 datanode 和 namenode 之間的通信

第四步:方法將數據分成多個數據包,并寫入內部隊列. DFDataOutStream 將寫入的數據分成多個數據包,并寫入內部隊列中,同時開啟datanode中DataStreamer處理數據隊列,它負責根據datanode列來要求namenode分配合適的新塊存儲數據備份開啟管道機制依次執行步驟4,同時即是write packet完整過程

第五步:每執行一次4就有一次步驟5返回確認信息.

4和5屬于分別在DataQueue隊列和ACKQueue隊列,當每執行一次4就將此步確認信息放到ACKQueue隊列中

?

如圖:

?

第六步:當FSDataOutputStream收到確認信息后,執行close()方法關閉輸出流,

第七步:DistributeFileStream 返回給namenode確認信息.

注釋:第4-5部分實現在后臺完成步不一定在第七步之前,

當執行第四步就就收第5步確認信息,告訴namenode 數據寫入成功,即是第七步.

轉載于:https://www.cnblogs.com/guxiaobei/p/8442131.html

總結

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

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