hadoop - 将新文件上传到 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.replication
hdfs-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)
新上传的文件没有反映的问题。
有人有想法吗?
解决方案
推荐阅读
- javascript - 下拉从时间选择上一次禁用时间
- vue.js - 如何为不同的表扩展跨度方法
- c# - 如何将所有解决方案包更新到最新的次要版本 Nuget?
- javascript - 将 XLSX 列数据类型修改为文本
- angular - 删除动态行中选定的下拉值
- javascript - AngularJs 无法从函数返回数据
- javascript - 监听firestore中Root集合云功能的变化
- linux - 在 Ubuntu 18 中使用 Ubuntu 16 的共享库
- angular - Jasmine:测试嵌套函数是否被调用
- ms-access - 通过子表单从表中删除记录的 VBA 代码