更新时间:2022-12-14 GMT+08:00

文件读写常见故障

问题背景与现象

当用户在HDFS上执行写操作时,出现“Failed to place enough replicas:expected…”信息。

原因分析

  • DataNode的数据接受器不可用。

    此时DataNode会有如下日志:

    2016-03-17 18:51:44,721 | WARN | org.apache.hadoop.hdfs.server.datanode.DataXceiverServer@5386659f | hadoopc1h2:25009:DataXceiverServer: | DataXceiverServer.java:158
    java.io.IOException: Xceiver count 4097 exceeds the limit of concurrent xcievers: 4096
    at org.apache.hadoop.hdfs.server.datanode.DataXceiverServer.run(DataXceiverServer.java:140)
    at java.lang.Thread.run(Thread.java:745) 
  • DataNode的磁盘空间不足。
  • DataNode的心跳有延迟。

解决办法

  • 如果DataNode的数据接收器不可用,通过在Manager页面,增加HDFS参数“dfs.datanode.max.transfer.threads”的值解决。
  • 如果没有足够的硬盘空间或者CPU,试着增加新的数据节点或确保资源是可用的(磁盘空间或CPU)。
  • 如果网络问题,确保网络是可用的。