8

谁能让我知道如何修复丢失的副本?

==================================================== ===========================

总大小:3447348383 B

总目录:120

文件总数:98

总块(已验证):133(平均块大小 25919912 B)

最少复制块:133 (100.0 %)

过度复制的块:0 (0.0 %)

复制不足的块:21 (15.789474 %)

错误复制的块:0 (0.0 %)

默认复制因子:3

平均块复制:2.3834586

损坏块:0

缺少副本:147 (46.37224 %)

数据节点数:3

机架数量:1

==================================================== ===========================

根据无限指南,

损坏或丢失的块是最令人担忧的原因,因为这意味着数据已经丢失。默认情况下,fsck 会留下带有损坏或丢失块的文件,但您可以告诉它对它们执行以下操作之一:

• 使用-move 选项将受影响的文件移动到HDFS 中的/lost+found 目录。文件被分成连续的块链,以帮助您尝试进行任何挽救工作。

• 使用-delete 选项删除受影响的文件。文件删除后无法恢复。

我的问题是如何找出受影响的文件?我已经与 Hive 合作以毫无问题地获得所需的输出。它会影响查询处理的性能/速度吗?

问候,

拉吉

4

1 回答 1

12

随着时间的推移,丢失的副本应该可以自我修复。但是,如果您想将它们移动到 lost+found,您可以使用:

hadoop fsck / -move

或删除它们:

hadoop fsck / -delete

如果您只想识别具有复制不足的块的文件,请使用:

hadoop fsck / -files -blocks -locations

这将为您提供很多详细信息,包括预期/实际块复制计数的列表。

于 2013-04-19T00:17:14.970 回答