Hadoop:FSCK结果显示缺少副本

Hadoop:FSCK结果显示缺少副本,hadoop,hive,hdfs,hiveql,Hadoop,Hive,Hdfs,Hiveql,有人能告诉我如何修复丢失的副本吗 ============================================================================ 总尺寸:3447348383 B 总数:120 档案总数:98 总区块(已验证):133(平均区块大小25919912 B) 最小复制块数:133(100.0%) 复制块上:0(0.0%) 复制块下:21(15.789474%) 错误复制的块:0(0.0%) 默认复制因子:3 平均块复制:2.3834586 损

有人能告诉我如何修复丢失的副本吗

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

总尺寸: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合作,获得了所需的输出,没有任何问题。它是否会影响查询处理的性能/速度

问候,


Raj

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

hadoop fsck / -move
或通过以下方式删除它们:

hadoop fsck / -delete
如果您只想标识具有未复制块的文件,请使用:

hadoop fsck / -files -blocks -locations

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

因此,您认为缺少副本不是问题,不是吗?它会影响查询处理的性能/速度。只要您没有丢失给定块的所有副本,就可以从剩余副本中重新生成丢失的副本。如果文件中有一个或多个块缺少所有副本,则该文件已损坏,无法恢复。你可以在Eric Sammer的《Hadoop操作》一书中找到一个很好的解释:嗨,如果我运行Hadoop fsck/-delete,内部会发生什么?你能详细说明一下吗。