我们的Hadoop集群每天报告有“低复制块”。它通过Cloudera Manager进行管理。健康警语的一个例子是:HDFS重复发生的错误:低复制块
! 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 $1}' >> /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的经理以下HDFS配置解决由于
基本上,如果您有一个数据未完全复制的HDFS应该自动将这些块复制到其他数据节点以匹配复制因子。 您还可以运行CM> HDFS> Actions下拉菜单中给出的Balancer来修复此错误。 集群中有多少个数据节点?您是否通过NN Web UI看到哪些文件具有复制块?这些文件是否是由作业创建的临时文件。您是否看到一旦相关工作完成后,这些警告是否会在没有做任何事情的情况下消失? – Salim
你有没有和问题发生时一样的节奏运行的工作? – tk421
@ tk421不幸的是,它似乎没有任何数据摄入工作(或任何工作,就此而言)运行 – Smittey