HDFS Reoccurring Error: Under-Replicated Blocks
HDFS Reoccurring Error: Under-Replicated Blocks
我们的 Hadoop 集群每天都报告有 “复制不足的块”。它通过 Cloudera Manager 进行管理。健康警告的一个例子是:
! Under-Replicated Blocks
Concerning: 767 under replicated blocks in the cluster. 3,115 total blocks in the cluster. Percentage under replicated blocks: 24.62%. Warning threshold: 10.00%.
我已经 运行 命令修复了问题,但第二天早上警告又回来了,有时没有添加任何新数据。暂时成功的命令之一是
hdfs dfs -setrep -R 2 /*
我也试过了another recommended command
su hdfs
hdfs fsck / | grep 'Under replicated' | awk -F':' '{print }' >> /tmp/under_replicated_files
for hdfsfile in `cat /tmp/under_replicated_files`; do echo "Fixing $hdfsfile :" ; hadoop fs -setrep 2 $hdfsfile; done
两者都有效,但修复不是永久性的。
在 Cloudera Manager 中,Replication Factor
和 Minimal Block Replication
都设置为 2
。
由于该问题大约每 24 小时只发生一次,因此尝试修复既困难又耗时,我唯一的办法就是反复试验。我不知道为什么这个错误不断回来!任何建议,将不胜感激。谢谢
通过在 Cloudera Manager 中设置以下 HDFS 配置解决了问题:
- 转到 HDFS 服务。
- 单击“配置”选项卡。
- Select 范围 > NameNode。
Filesystem Trash Interval
: 0 day(s)
输入“0”将禁用垃圾桶功能。
这个属性也可以用fs.trash.interval
配置
一旦我设置了这个,我就删除了所有有问题的未复制的垃圾块 -
通过查看 运行 生成的 under_replicated_files
文件显示以下命令:
hdfs fsck / | grep 'Under replicated' | awk -F':' '{print }' >> /tmp/under_replicated_files
我最终只是为用户删除了所有 .Trash。
一旦它被删除,这一切就阻止了其他任何东西被移动到 .Trash 中(我意识到这可能不是每个人都能接受的解决方案,但对于我的用例来说这完全没问题)。此外,删除所有未复制的块意味着警告消失了。
我们的 Hadoop 集群每天都报告有 “复制不足的块”。它通过 Cloudera Manager 进行管理。健康警告的一个例子是:
! Under-Replicated Blocks
Concerning: 767 under replicated blocks in the cluster. 3,115 total blocks in the cluster. Percentage under replicated blocks: 24.62%. Warning threshold: 10.00%.
我已经 运行 命令修复了问题,但第二天早上警告又回来了,有时没有添加任何新数据。暂时成功的命令之一是
hdfs dfs -setrep -R 2 /*
我也试过了another recommended command
su hdfs
hdfs fsck / | grep 'Under replicated' | awk -F':' '{print }' >> /tmp/under_replicated_files
for hdfsfile in `cat /tmp/under_replicated_files`; do echo "Fixing $hdfsfile :" ; hadoop fs -setrep 2 $hdfsfile; done
两者都有效,但修复不是永久性的。
在 Cloudera Manager 中,Replication Factor
和 Minimal Block Replication
都设置为 2
。
由于该问题大约每 24 小时只发生一次,因此尝试修复既困难又耗时,我唯一的办法就是反复试验。我不知道为什么这个错误不断回来!任何建议,将不胜感激。谢谢
通过在 Cloudera Manager 中设置以下 HDFS 配置解决了问题:
- 转到 HDFS 服务。
- 单击“配置”选项卡。
- Select 范围 > NameNode。
Filesystem Trash Interval
:0 day(s)
输入“0”将禁用垃圾桶功能。
这个属性也可以用fs.trash.interval
配置
一旦我设置了这个,我就删除了所有有问题的未复制的垃圾块 -
通过查看 运行 生成的 under_replicated_files
文件显示以下命令:
hdfs fsck / | grep 'Under replicated' | awk -F':' '{print }' >> /tmp/under_replicated_files
我最终只是为用户删除了所有 .Trash。
一旦它被删除,这一切就阻止了其他任何东西被移动到 .Trash 中(我意识到这可能不是每个人都能接受的解决方案,但对于我的用例来说这完全没问题)。此外,删除所有未复制的块意味着警告消失了。