datanode 宕机报错
2021-04-13 12:08:18,072 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: 192-168-72-68:50010:DataXceiver error processing WRITE_BLOCK operation src: /192.168.72.118:19956 dst: /192.168.72.68:50010
java.io.IOException: Not ready to serve the block pool, BP-282140548-192.168.72.11-1494406423231.
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.checkAndWaitForBP(DataXceiver.java:1277)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.checkAccess(DataXceiver.java:1285)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:631)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:137)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:74)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:253)
at java.lang.Thread.run(Thread.java:748)
字面理解为文件操作超租期,实际上就是data stream操作过程中文件被删掉了。之前也遇到过,通常是因为Mapred多个task操作同一个文件,一个task完成后删掉文件导致。
修改
1、datanode所在的linux服务器提高文件句柄参数;
2、增加HDFS的datanode句柄参数:dfs.datanode.max.transfer.threads。
修改hdfs-site.xml
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
</property>