Spark java.io.EOFException:过早的EOF:没有可用的长度前缀

时间:2016-04-22 11:25:31

标签: hadoop apache-spark hdfs cloudera

我正在尝试阅读镶木地板文件并对其执行一些操作,并将结果保存为HDFS上的镶木地板。我是用Spark做的。在这样做的过程中,我遇到了异常。

java.io.EOFException: Premature EOF: no length prefix available
at org.apache.hadoop.hdfs.protocolPB.PBHelper.vintPrefixed(PBHelper.java:2203)
at org.apache.hadoop.hdfs.protocol.datatransfer.PipelineAck.readFields(PipelineAck.java:176)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer$ResponseProcessor.run(DFSOutputStream.java:867)

任何可能的原因和解决方案的帮助。

使用CDH 5.4.1

1 个答案:

答案 0 :(得分:0)

过早的EOF代表文件的过早结束。

没有发布代码,因此我无法提供更具体的解决方案,但是可以通过两种方式发生此错误:

  1. 如果您使用的库仍是新库/未经测试,则可能会在某些极端情况下发现问题
  2. 然而,更有可能的是您在代码中犯了一个错误。这可能像语法错误一样简单,但也可能更加微妙,例如以错误的方式调用某些东西。