原因
根本原因是集群中的一个或多个信息块在所有节点中都已损坏,因此映射无法获取数据。
命令 hdfs fsck -list-corruptfileblocks 可用于识别集群中损坏的块。
当数据节点中打开的文件数量较少时,也会出现此问题。
解决方案
检查集群中的 Dfs.replication 属性,集群中 INFORMATICA 的最小复制因子为 3 (dfs.replication=3)。如有必要,增加该数字。更改后必须重新启动集群。
HDFS 修改默认副本数
描述:将HDFS副本数修改为3
第一步:将HDFS上已有文件副本数修改为3
hdfs dfs -setrep 3 -R -w /
第二步:修改dfs.replication值为3(页面上操作),然后重启HDFS
hdfs-site.xml文件:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
第三步:修改副本数之后进行核对
hdfs fsck / -files -blocks
第四步、手动创建一个文件,上传至HDFS,观察其副本数
如果副本数还是3,首先确认副本参数是否已经生效(第三步的命令中可以查看),
参考:https://knowledge.informatica.com/s/article/526520?language=en_US
https://www.cnblogs.com/yfb918/p/11410600.html