接到监控同事电话,有一台datanode机器因为重启,导致无法启动datanode服务。后来启动以后,监控日志发现有如下报错:

1
2
3
4
5
6
2017-07-24 09:41:09,456 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: NDAPP-DATA-13:50010:DataXceiver error processing unknown operation  src: /10.1.220.44:46565 dst: /10.1.0.52:50010
java.io.EOFException
at java.io.DataInputStream.readShort(DataInputStream.java:315)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:56)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:202)
at java.lang.Thread.run(Thread.java:722)

后来经过Google搜索,发现是因为Ambari每分钟会向datanode发送”ping”连接一下去确保datanode是正常工作的.否则它会触发alert。但是datanode并没有处理空内容的逻辑,所以直接异常了。
这个错误可以忽略,当然有强迫症的童鞋也可以参考https://issues.apache.org/jira/browse/HDFS-8738里的patch里的patch。