You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Hadoop 3.3.6数据加载失败:副本写入异常求助

解决HDFS写入失败:DataNode被排除无法写入副本的问题

针对你遇到的could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1 node(s) are excluded错误,以下是针对性排查和解决步骤:

  • 检查DataNode排除列表
    执行命令查看当前被NameNode排除的节点:

    hdfs dfsadmin -getExcludedNodes
    

    如果输出包含你的DataNode节点,先修改hdfs-site.xml中的dfs.hosts.exclude配置文件,移除该节点,然后刷新NameNode节点列表:

    hdfs dfsadmin -refreshNodes
    

    同时执行hdfs dfsadmin -report确认该DN的状态是否为In Service。

  • 验证跨节点网络与RPC连通性
    从提交作业的节点,测试到DataNode节点的HDFS端口连通性(Hadoop 3.x默认数据传输端口为9866,RPC端口为8020):

    nc -zv <datanode-hostname> 9866
    nc -zv <datanode-hostname> 8020
    

    若连通失败,检查RHEL 8.6的防火墙规则(firewall-cmd --list-all),确保Hadoop相关端口已开放,或者临时关闭防火墙测试。同时查看DataNode日志($HADOOP_HOME/logs/hadoop-datanode-*.log),确认是否存在RPC连接拒绝、认证失败等报错。

  • 排查存储策略与节点标签限制
    检查目标路径的存储策略是否绑定了特定节点标签:

    hdfs storagepolicies -getStoragePolicy -path /user/mapred/huawei/mhr_sms_mt_bill_home_routed/date_hour=2023-11-21-07
    

    若存在标签限制,确认DataNode是否配置了对应标签;执行hdfs dfsadmin -printTopology查看节点标签信息,必要时调整存储策略或给DataNode添加对应标签。

  • 确认LZO压缩环境一致性
    因为写入的是LZO格式文件,需确保:

    • 提交作业的节点和DataNode节点都安装了相同版本的LZO压缩库(如lzo-devel、hadoop-lzo)
    • core-site.xml中已配置LZO编解码器:
      <property>
        <name>io.compression.codecs</name>
        <value>com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>
      </property>
      <property>
        <name>io.compression.codec.lzo.class</name>
        <value>com.hadoop.compression.lzo.LzoCodec</value>
      </property>
      

    重启相关服务后重新测试作业。

  • 检查DataNode健康状态细节
    查看DataNode日志,重点排查:

    • 存储目录权限:确认HDFS存储目录(dfs.datanode.data.dir配置的路径)所属用户为Hadoop运行用户,权限为755
    • 磁盘健康:执行df -h确认磁盘未挂载只读,dmesg查看是否有磁盘IO错误
    • 资源瓶颈:top查看CPU、内存占用情况,避免因资源耗尽导致DN被标记为不健康

内容的提问来源于stack exchange,提问作者user3051956

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:31:21