在服务器上更改IP后,java.io.IOException:replica.getGenerationStamp()

时间:2014-12-15 09:04:53

标签: hadoop hdfs

我正在使用水槽将数据加载到HDFS。最近在服务器上有一个IP更改,所以在那之后我根本无法启动奴隶。我在服务器和数据节点上有很多数据,因此重新格式化不是一种选择。即使主设备调用slave并尝试启动从属节点也无法启动。以下是我看到的异常,因为slave仍在尝试引用master的旧IP:

java.io.IOException: replica.getGenerationStamp() < block.getGenerationStamp()
WARN org.apache.hadoop.hdfs.server.protocol.InterDatanodeProtocol: Failed to obtain replica info for block (=BP-967573188-192.168.XX.XX-1413284771002:blk_1073757987_17249) from datanode (=192.168.XX.XX:50010)
java.io.IOException: replica.getGenerationStamp() < block.getGenerationStamp(), block=blk_1073757987_17249, replica=ReplicaWaitingToBeRecovered, blk_1073757987_17179, RWR
  getNumBytes()     = 81838954
  getBytesOnDisk()  = 81838954
  getVisibleLength()= -1
  getVolume()       = /var/hadoop/data/current
  getBlockFile()    = /var/hadoop/data/current/BP-967573188-192.168.XX.XX-1413284771002/current/rbw/blk_1073757987
  unlinked=false
 at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.initReplicaRecovery(FsDatasetImpl.java:1613)
 at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.initReplicaRecovery(FsDatasetImpl.java:1579)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.initReplicaRecovery(DataNode.java:2094)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.callInitReplicaRecovery(DataNode.java:2105)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.recoverBlock(DataNode.java:2173)
 at org.apache.hadoop.hdfs.server.datanode.DataNode.access$400(DataNode.java:140)
 at org.apache.hadoop.hdfs.server.datanode.DataNode$2.run(DataNode.java:2079)
 at java.lang.Thread.run(Thread.java:745)

我更新了配置文件/ etc / hosts但没有任何效果。请建议

1 个答案:

答案 0 :(得分:0)

在hadoop conf目录中的slaves文件中更新datanode的新ip地址。

此致 Jyoti Ranjan Panda