Hadoop:Why hdfs throw the SocketTimeoutException exception?
<p>My <code>datanodes</code> sometimes throw an <code>SocketTimeoutException</code>.</p>

<blockquote>
  <p>2016-10-08 16:23:47,557 WARN
  org.apache.hadoop.hdfs.server.datanode.DataNode: IOException in
  offerService  java.net.SocketTimeoutException: Call From
  hadoop-slave-xxx.com/slaveIp to hadoop-master-namenode-xxx.com:9000 f
    ailed on socket timeout exception: java.net.SocketTimeoutException:
  60000 millis timeout while waiting for channel to be ready for rea    d.
  ch : java.nio.channels.SocketChannel[connected local=/slaveIp:59710
  remote=hadoop-namenode-xxx.com/namenodeIp:    9000]; For more details
  see:  <a href="http://wiki.apache.org/hadoop/SocketTimeout" rel="nofollow">http://wiki.apache.org/hadoop/SocketTimeout</a></p>
</blockquote>

<p>I think,i can set <code>dfs.socket.timeout</code> to solve the problem,but i want to know,why throw the exception.</p>

<p>It is strange that the <code>datanodes</code> throw the exception at the same time.But the <code>namenode</code> is not doing a <code>full gc</code> at the exception time.</p>

<p>EDIT:</p>

<p>At that time hadoop balancer runs normally.</p>