文件副本数量问题,设置的dfs.replication没有生效

问题描述:

前几天发现hadoophdfs磁盘空间经常满,导致任务失败,但是查看hadoop fs -du -h /  这个根目录的文件大小总计150T左右,但是在50070端口页面查看到的磁盘使用接近390T,怀疑是文件备份数出问题了。

执行 hadoop dfs -ls [filename]  近期的文件都是3份,上个月的抽几个文件看了下都是2份

执行 hadoop fsck /  查看整个目录的备份数分布,输出结果如下:
Default replication factor  2
Average block replication 2.38

昨天晚上用 执行 hadoop fs -setrep -r 2 / 命令直接把hdfs根目录下的所有文件副本数设置成2,命令执行了大约1个小时,磁盘已使用空间从390T变成299T,一下子释放了接近100T的磁盘空间。今天来查看了下文件副本数,今天新生成的还是3个副本。查看了namenode和datanode的cdh和mr目录下面的hdfs-site.xml配置文件里面dfs.replication副本数参数的value值设置的全是2。

主要信息为副本数与默认配置不符的文件/目录。

这个cdr.done(备份数为3的目录)目录存储的是什么数据?从哪里来的?
答:是预处理上传过来的数据

预处理主机的dfs.replication设置的是几?
答:把预处理jar包解压后找到了设置dfs.replication参数的hdfs-site.xml配置文件,修改后重新打个jar包重启预处理服务,查看了了上传的最新上传的一个文件副本数是2,问题解决

block的备份数是由写入数据的client端配置决定的,所以该类问题一般是由client的配置引起。

你可能感兴趣的:(HADOOP)