块缓存
DataNode会把访问频繁的块缓存到内存中。
${dfs.datanode.data.dir}/current为每个Block pool建一个目录。目录名是Block pool ID。
Block pool目录里面存
current/subdir0/subdir0/和scanner.cursor
subdir0里是块,块包含blk${block_id}和blk${block_id}_xxx.meta俩文件
meta存CRC32校验和。
当目录中的块数量达到64(可由dfs.DataNode.numblocks属性值确定)时,便会新建一个子目录
目录结构
- current
- BP-2004589352-192.168.124.13-1572572416418
- current
- dfsUsed
- finalized
- subdir0
- subdir0
- blk_1073741841
- blk_1073741841_1017.meta
- subdir1
- subdir0
- subdir0
- rbw
- VERSION
- scanner.cursor
- tmp
- current
- BP-2004589352-192.168.124.14-1572572416418
- VERSION
- in_use.lock