title: Hadoop:Why hdfs throw the SocketTimeoutException exception?
body: <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>