datanodeUuid 全局唯一。

块缓存

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
      • rbw
      • VERSION
    • scanner.cursor
    • tmp
  • BP-2004589352-192.168.124.14-1572572416418
  • VERSION
    • in_use.lock