FSEditLog: Error: starting log segment 7913 failed for required journal

一台namenode挂掉,另外一台高可用没起起来,journal报错,

 

解决办法:

1,其实在实际的生产环境中,也很容易发生类似的这种超时情况,所以我们需要把默认的20s超时改成更大的值,比如60s。

我们可以在hadoop/etc/hadoop下的hdfs-site.xml中,加入一组配置:

<property>
        <name>dfs.qjournal.write-txns.timeout.ms</name>
        <value>60000</value>
</property>

2,把zkfailovercontroller去掉,改为手动切换主备nameserver.

修改参数dfs.ha.automatic-failover.enabled=false

当需要切换主备时,使用Hdfs用户(su hdfs), 执行命令hdfs  haadmin -failover --forcefence --forceactive  nn2 nn1
切换之前同步主备的fsimage和editlog

FSEditLog: Error: starting log segment 7913 failed for required journal