You can get a EOFException java.io.EOFException
in two main ways
Unless this is caused by a network issue (see below), and EOFException
means that the program working with a file in HDFS or another supported FileSystem has tried to read or seek beyond the limits of the file.
There is an obvious solution here: don't do that.
You can see an EOFException during network operations, including RPC calls between applications talking to HDFS, the JobTracker, YARN services or other Hadoop components.
It can mean
The far end of the network link shut down during the RPC operation.
There is some protocol mismatch between client and server which means that the server sent less data than the client expected. This is rare in the core Hadoop components, as the RPC mechanisms used versioned protocols precisely to prevent versioning problems. It is more likely in a third-party component, or a module talking to a remote filesystem.
org.apache.hadoop
-especially an RPC one), or something else.If your users see this a lot, it implies it is time to make your client applications use the org.apache.hadoop.io.retry
package to make them more resilient to outages.