版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mn_kw/article/details/90017647
跑了一个mapreduce发现集群上出现了7个Under-Replicated Blocks,在web页面上能看到,在主节点上执行:
$ bin/hadoop fsck -blocks
删除导致问题的文件之后就好了。
导致这个问题可能有俩个原因
1. 可能我们默认得block副本因子是3,但是我们的datanode节点只有俩2个或者是1个这个时候就会出现这个有报错
2. 我们mapperReduce,默认提交作业的副本是10,但是我们的datanode节点没有那么多,这个时候也会出现这个错误
这错误对集群运行没有太大的影响
第一类的解决问题:
$ hadoop fs -setrep -R 1 /
or
update your hdfs-site.xml
file property
dfs.replication=1
第二类的解决问题:
修改mapper-site中的这个属性,它默认是10 ,我们可以给到3
mapreduce.client.submit.file.replication
bash$ hdfs fsck / | grep 'Under replicated' | awk -F':' '{print $1}'
用这个命令可以查看我们under replic block具体的文件
- #Set replication
- bash$ hadoop fs -setrep 3 /file_name
给flie_name 分配副本