Hadoop:FSCK结果显示缺少副本

Raj*_*Raj 8 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

腐败的块:0

遗失的复制品:147(46.37224%)

数据节点数:3

机架数量:1

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

根据无限指南,

损坏或丢失块是引起关注的最大原因,因为它意味着数据已丢失.默认情况下,fsck会保留包含损坏或丢失块的文件,但您可以告诉它对它们执行以下操作之一:

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

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

在这里我的问题是如何找出受影响的文件?我已经与Hive合作以获得所需的输出而没有任何问题.它会影响查询处理的性能/速度.

问候,

拉吉

hig*_*ted 12

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

hadoop fsck / -move
Run Code Online (Sandbox Code Playgroud)

或者删除它们:

hadoop fsck / -delete
Run Code Online (Sandbox Code Playgroud)

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

hadoop fsck / -files -blocks -locations
Run Code Online (Sandbox Code Playgroud)

这将为您提供大量详细信息,包括预期/实际块复制计数列表.