首页 理论教育 Hadoop文件系统检查工具和报告

Hadoop文件系统检查工具和报告

时间:2023-06-30 理论教育 版权反馈
【摘要】:Hadoop提供的文件系统检查工具叫做fsck。如参数为文件路径时,它会递归地检查该路径下所有文件的健康状态。在fsck检查文件系统时,它每发现一个健康的文件就会打印出一个圆点。但是,损坏的块和失踪的副本意味着数据已永久丢失。例如,一个小到仅有一个数据块的文件会给出如下的报告:bin/hadoop fsck/user/hadoop/test-files-blocks-locations-racks,如图6-2所示。图6-2 报告虽然fsck会给出HDFS中每个文件的报告,但获知DataNode的情况却需要用dfsadmin命令,可以使用dfsadmin命令中的-report选项:bin/hadoop dfsadmin-report,如图6-3所示。

Hadoop文件系统检查工具和报告

Hadoop提供的文件系统检查工具叫做fsck。如参数为文件路径时,它会递归地检查该路径下所有文件的健康状态。如果参数为/,它就会检查整个文件系统。图6-1所示为一个输出的示例:bin/hadoop fsck/。

978-7-111-43496-2-Part02-157.jpg

图6-1 一个输出的示例

大多数信息是不言而喻的。默认情况下,fsck会忽略正在被客户端写入而打开的文件。如果想看到这些文件的列表,可以在fsck中使用-openforwrite参数。

在fsck检查文件系统时,它每发现一个健康的文件就会打印出一个圆点(未在前述的输出中显示)。遇到不健康的文件时,它会打出相应信息,包括过度复制的块、复制不足的块、未复制的块、损坏的块和失踪的副本。因为HDFS是自我修复的,所以过度复制的块、复制不足的块、未复制的块都不足为虑。但是,损坏的块和失踪的副本意味着数据已永久丢失。默认情况下,fsck对损坏的文件什么也不做,但可以运行fsck的-delete选项将其删除。但更好的方式是用-move选项运行fsck,它会把已损坏的文件移动到/lost+found目录中备用。

还可以在fsck中加上-files、-blocks、-locations和-racks选项,以打印出更多的信息。每个后续的选项需要前面选项的存在:-blocks需要-files;-locations既要有-files,也要有-blocks,以此类推。-files选项让fsck每检查一个文件便打印一行信息,包括文件路径、文件字节数与块个数,以及文件的状态。-blocks选项进一步让fsck为文件中的每个块打印出一行信息,该行包括块名、长度及其副本数。-locations选项会让每一行包含块的副本位置。-racks选项则会在位置信息中增加机架名。例如,一个小到仅有一个数据块的文件会给出如下的报告:bin/hadoop fsck/user/hadoop/test-files-blocks-locations-racks,如图6-2所示。

978-7-111-43496-2-Part02-158.jpg(www.xing528.com)

图6-2 报告

虽然fsck会给出HDFS中每个文件的报告,但获知DataNode的情况却需要用dfsadmin命令,可以使用dfsadmin命令中的-report选项:bin/hadoop dfsadmin-report,如图6-3所示。

978-7-111-43496-2-Part02-159.jpg

图6-3 使用dfsadmin命令中的-report选项

若要看NameNode的当前活动状态,可以在dfsadmin中使用-metasave选项:bin/hadoop dfsadmin-metasave filename。

这会将一部分NameNode的元数据保存到日志目录下filename文件中。在这些元数据中,会发现待复制的块以及待删除块的列表。每个块也会有一个复制列表,指向它被复制到的DataNode。最后,这个文件还会给每个DataNode统计摘要。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈