hadoop--HDFS的读写数据流程
目錄
- HDFS中block、packet、chunk的概念
- 1. 數(shù)據(jù)塊block
- 2. packet
- 3. chunk
- HDFS讀數(shù)據(jù)流程
- HDFS寫數(shù)據(jù)流程
HDFS中block、packet、chunk的概念
1. 數(shù)據(jù)塊block
每個磁盤都有默認的數(shù)據(jù)塊大小,這是磁盤進行數(shù)據(jù)讀寫的最小單位。
HDFS也有塊(block)的概念,但是大得多,默認128MB,與單一磁盤上的文件系統(tǒng)相似,HDFS上的文件也被劃分為塊大小的多個分塊(chunk),作為獨立的存儲單元。
但與面向單一磁盤的文件系統(tǒng)不同的是,HDFS中小于一個塊大小的文件不會占據(jù)整個塊的空間(如一個文件只有1MB存儲在128MB的塊中,文件只使用1MB的磁盤空間,而不是128MB)。
2. packet
client向datanode傳輸數(shù)據(jù)的最小單位稱為packet (64k=512 byte +4 byte);
3. chunk
chunk是最小單位,默認為512byte,加上4byte的校驗位chunksum;
HDFSClient創(chuàng)建FSDataInputStream/FSDataOutputStream流時會產(chǎn)生緩沖隊列,存儲512byte的chunk加4byte的校驗位chunksum;
chunk–>Packet–>block
HDFS讀數(shù)據(jù)流程
tips: 通過串行讀取數(shù)據(jù),先讀block1,再讀block2追加在block1后面。
HDFS寫數(shù)據(jù)流程
數(shù)據(jù)流–>chunk(512+4)–>Packet–>緩沖隊列–>發(fā)送–>應(yīng)答–>ack隊列;
ack隊列在發(fā)送時會存儲一份緩沖數(shù)據(jù),只有應(yīng)答成功之后,緩沖隊列才會刪除;
tips:
client端向dn1上傳數(shù)據(jù),上傳成功后會有2份數(shù)據(jù),其中1份寫入磁盤,另一份存在內(nèi)存中直接傳給dn2。
作業(yè)提交全過程(HDFS & YARN & MapReduce==>)
總結(jié)
以上是生活随笔為你收集整理的hadoop--HDFS的读写数据流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 启航
- 下一篇: XCode: 兼容ARC和non-ARC