首页 > 解决方案 > 将新文件上传到 HDFS 时未反映 hdfs-site.xml 中的 HDFS 复制因子

问题描述

我创建了一个 HDFS 集群,其中包含一个名称节点、两个日期节点和一个辅助名称节点。因此,总共有四台机器/服务器(有四个 IP)。

配置(core-site.xml,hdfs-site.xml,...)在名称节点上设置,然后复制到两个数据节点和一个辅助名称节点上的 ~/hadoop.XXX/etc/hadoop 文件夹。

在 hdfs-site.xml 中,

<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>

复制因子设置为2。但是,每次我将数据上传到HDFS时,在Web界面上,复制因子始终为3,并且相应的文件复制不足。

在此处输入图像描述

我当然可以运行hadoop fs -setrep -w 2 /hdfsPathToTheFile将复制因子从 3 更改回 2。当我运行hadoop fs -setrep -w 2 /所有现有文件时,没有文件被报告为复制不足。

但是,我想避免这种情况,并希望dfs.replicationhdfs-site.xml 中定义的 (=2) 反映新上传的文件。

此处讨论了相同的问题:https ://community.cloudera.com/t5/Support-Questions/Replication-factor-in-HDFS/td-p/117934 ,但没有答案可以解决我的问题。

在 stackoverflow 上,这两篇文章也很相似:HDFS 复制属性未按照 hfs-site.xml 中定义的方式反映HDFS 复制因子

我试图听从他们的建议,例如hdfs dfsadmin -refreshNodes,和/或重新启动 hadoop 集群,和/或什至重新安装一个全新的 hadoop 集群。但似乎没有一个解决dfs.replication (=2)新上传的文件没有反映的问题。

有人有想法吗?

标签: hadoophdfsreplication

解决方案


推荐阅读