有谁能让我知道如何修复丢失的副本?
=============================================== =============================
总大小: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合作以获得所需的输出而没有任何问题。它会影响查询处理的性能/速度。
此致
拉吉
答案 0 :(得分:12)
缺少复制品应该随着时间的推移自我修复。但是,如果您想将它们移到lost + found,您可以使用:
hadoop fsck / -move
或者删除它们:
hadoop fsck / -delete
如果您只想识别包含不足复制块的文件,请使用:
hadoop fsck / -files -blocks -locations
这将为您提供大量详细信息,包括预期/实际块复制计数列表。