代码改变世界

一个journode启动异常的处理

2019-04-17 15:33  ljinch  阅读(835)  评论(0)    收藏  举报

异常日志如下:

org.apache.hadoop.hdfs.server.namenode.FSImage: Caught exception after scanning through 0 ops from /usr/local/hadoop/tmp/data/dfs/journalnode/ns1/current/edits_inprogress_0000000000000018926 while determining its valid length. Position was 1040384
java.io.IOException: Can't scan a pre-transactional edit log.

 

此异常为JournalNode维护的edits文件损坏导致的,可从其他机器复制对应的JournalNode文件进行替换,具体步骤为:

1) 备份本地journalnode文件: tar -zcvf current.bak.tar.gz current

2) 打包集群中其他正常机器的journalnode文件:cd /usr/local/hadoop/tmp/data/dfs/journalnode/ns1

 tar -zcvf current.tar.gz current

3)复制到异常机器下面: scp current.tar.gz hadooptest003://usr/local/hadoop/tmp/data/dfs/journalnode/ns1

4)在异常机器下面删除current文件并进行覆盖

rm -rf current

tar -zxvf current.tar.gz 

5) 启动journode后,正常

 ./hdfs --daemon start journalnode