2014-12-15 2 views
0

flume을 사용하여 HDFS에 데이터를로드 중입니다. 최근에 서버에 IP 변경이 있었기 때문에 나는 슬레이브를 전혀 시작할 수 없습니다. 서버 및 데이터 노드에 많은 데이터가 있으므로 형식을 다시 지정할 수 없습니다. 마스터가 슬레이브를 호출하여 슬레이브 노드를 시작하려고 시도하지만 시작하지 않습니다. 내가 설정 파일/etc/hosts 파일을 업데이트 있지만 효과가없는 한서버에서 IP 변경 후 java.io.IOException : replica.getGenerationStamp()

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) 

: 슬레이브가 여전히 마스터의 이전 IP를 참조하려고하기 때문에 내가 보는 예외는 다음과 같습니다.

답변

0

hadoop conf 디렉토리의 슬레이브 파일에있는 datanode의 새 IP 주소를 업데이트하십시오.

감사 죠티 란잔 팬더

+0

그 일을하지만 작동하지 않았다, 그래서 난 새롭게 모든 포맷 :(. 또한 dfs.data.dir이 만들어 기존 IP 파일 그래서 그 부분을 해결하기 위해 어떤 방법이 있었다 있었다. 아직도 알고 싶어합니다. – Raghuveer

관련 문제