如何在datanode中命名文件datanode hadoop中文件的命名约定

时间:2015-10-16 06:19:33

标签: hadoop

请告诉我在datanode中命名文件的方式/基础是什么?

我做了一个大于64MB的文件的copyFromLocal,发现它创建了两组文件。元文件和实际文件的一部分。

如何在datanode中命名文件? hadoop架构用于命名此文件的算法是什么? blk_-861882337543881015_1251.meta
blk_-861882337543881015
blk_-1127355763020627217_1252.meta
blk_-1127355763020627217

1 个答案:

答案 0 :(得分:1)

通常会将两种类型的文件写入datanode。一个将包含文件名为blk_<64 bit block ID>的实际原始数据。它只是该块ID的表示法。

另一个文件将包含元数据信息,其中包含标题,其中包含版本,类型和校验和等信息。当对此块执行读取操作时,此校验和将非常有用,而如果它与此校验和不匹配则读取此错误将会引发错误。文件名将命名为blk_<64 bit blockid>_<file_generation_stamp>.meta

文件生成标记用于指示数据块是在最后一个NameNode“fsimage”检查点之前还是之后创建的。如果在最后一个检查点之前,则该数字将小于存储在“fsimage”二进制文件中的数字。当fsimage中的内容在启动期间提交给namenode时,此信息会很有用。

假设你的复制因子是3.所以你的数据将存储在3个数据节点中,因此每个块都有一个元文件。所以你完全有3个副本(原始数据文件)+ 3个元文件。