Datanodes get error message "is valid, and cannot be written to" 
-----------------------------------------------------------------

                 Key: HADOOP-1845
                 URL: https://issues.apache.org/jira/browse/HADOOP-1845
             Project: Hadoop
          Issue Type: Bug
          Components: dfs
    Affects Versions: 0.14.1
            Reporter: Hairong Kuang
             Fix For: 0.15.0


>> Copy from dev list:
Our cluster has 4 nodes and i set the mapred.subimt.replication parameter to 2 
on all nodes and the master. Everything has been restarted.
Unfortuantely, we still have the same exception :

2007-09-05 17:01:59,623 ERROR org.apache.hadoop.dfs.DataNode:
DataXceiver: java.io.IOException: Block blk_-5969983648201186681 is valid, and 
cannot be written to.
        at org.apache.hadoop.dfs.FSDataset.writeToBlock(FSDataset.java:515)
        at
org.apache.hadoop.dfs.DataNode$DataXceiver.writeBlock(DataNode.java:822)
        at org.apache.hadoop.dfs.DataNode$DataXceiver.run(DataNode.java:727)
        at java.lang.Thread.run(Thread.java:595)
>> end of copy

The message shows that the namenode schedules to replicate a block to a 
datanode that already holds the block. The namenode block placement algorithm 
makes sure that it does not schedule a block to a datanode that is confirmed to 
hold a replica of the block. But it is not aware of any in-transit  block 
placements (i.e. the scheduled but not confirmed block placements), so 
occasionally we may still see "is valid, and cannot be written to" errors.

A fix to the problem is to keep track of all in-transit block  placements, and 
the block placement algorithm considers these  to-be-confirmed replicas as well.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to