You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "JiangHua Zhu (Jira)" <ji...@apache.org> on 2026/03/20 02:53:00 UTC

[jira] [Updated] (HDFS-17894) A new tool has been added to synchronize the latest FsImage

     [ https://issues.apache.org/jira/browse/HDFS-17894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

JiangHua Zhu updated HDFS-17894:
--------------------------------
    Description: 
The observer namenode stores the following fsimage files:
{code:java}
-rw-rw-r-- 1 hadoop hadoop 12075926817 Mar  11 18:20 fsimage_0000000000810972885
-rw-rw-r-- 1 hadoop hadoop          62 Mar  11 18:20 fsimage_0000000000810972885.md5
{code}

The standby namenode stores the latest fsimage file:
{code:java}
-rw-rw-r-- 1 hadoop hadoop 12142544499 Mar 20 04:42 fsimage_0000000000816122358
-rw-rw-r-- 1 hadoop hadoop          62 Mar 20 04:42 fsimage_0000000000816122358.md5
{code}

When the observer namenode has been running for a long time and needs to be restarted, it will prompt that the edit log is missing. The log is as follows:
{code:java}
2026-03-20 09:56:44,259 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage

java.io.IOException: There appears to be a gap in the edit log.  We expected txid 810972886, but got txid 814100454.

at org.apache.hadoop.hdfs.server.namenode.MetaRecoveryContext.editLogLoaderPrompt(MetaRecoveryContext.java:95)

at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:269)

at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:183)

at org.apache.hadoop.hdfs.server.namenode.FSImage.loadEdits(FSImage.java:917)

at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:762)

at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:339)

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1275)

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:834)

at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:817)

at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:904)

at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1158)

at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1133)

at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1906)

at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1971)
{code}

We can add a tool to synchronize the latest fsimage from the standby namenode. This tool is mainly used by the administrator.

  was:
The observer namenode stores the following fsimage files:
{code:java}
-rw-rw-r-- 1 hadoop hadoop 12075926817 3月  11 18:20 fsimage_0000000000810972885
-rw-rw-r-- 1 hadoop hadoop          62 3月  11 18:20 fsimage_0000000000810972885.md5
{code}

The standby namenode stores the latest fsimage file:
{code:java}
-rw-rw-r-- 1 hadoop hadoop 12142544499 Mar 20 04:42 fsimage_0000000000816122358
-rw-rw-r-- 1 hadoop hadoop          62 Mar 20 04:42 fsimage_0000000000816122358.md5
{code}

When the observer namenode has been running for a long time and needs to be restarted, it will prompt that the edit log is missing. The log is as follows:
{code:java}
2026-03-20 09:56:44,259 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage

java.io.IOException: There appears to be a gap in the edit log.  We expected txid 810972886, but got txid 814100454.

at org.apache.hadoop.hdfs.server.namenode.MetaRecoveryContext.editLogLoaderPrompt(MetaRecoveryContext.java:95)

at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:269)

at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:183)

at org.apache.hadoop.hdfs.server.namenode.FSImage.loadEdits(FSImage.java:917)

at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:762)

at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:339)

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1275)

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:834)

at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:817)

at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:904)

at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1158)

at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1133)

at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1906)

at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1971)
{code}

We can add a tool to synchronize the latest fsimage from the standby namenode. This tool is mainly used by the administrator.


> A new tool has been added to synchronize the latest FsImage
> -----------------------------------------------------------
>
>                 Key: HDFS-17894
>                 URL: https://issues.apache.org/jira/browse/HDFS-17894
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>    Affects Versions: 3.4.1
>            Reporter: JiangHua Zhu
>            Priority: Major
>
> The observer namenode stores the following fsimage files:
> {code:java}
> -rw-rw-r-- 1 hadoop hadoop 12075926817 Mar  11 18:20 fsimage_0000000000810972885
> -rw-rw-r-- 1 hadoop hadoop          62 Mar  11 18:20 fsimage_0000000000810972885.md5
> {code}
> The standby namenode stores the latest fsimage file:
> {code:java}
> -rw-rw-r-- 1 hadoop hadoop 12142544499 Mar 20 04:42 fsimage_0000000000816122358
> -rw-rw-r-- 1 hadoop hadoop          62 Mar 20 04:42 fsimage_0000000000816122358.md5
> {code}
> When the observer namenode has been running for a long time and needs to be restarted, it will prompt that the edit log is missing. The log is as follows:
> {code:java}
> 2026-03-20 09:56:44,259 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
> java.io.IOException: There appears to be a gap in the edit log.  We expected txid 810972886, but got txid 814100454.
> at org.apache.hadoop.hdfs.server.namenode.MetaRecoveryContext.editLogLoaderPrompt(MetaRecoveryContext.java:95)
> at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:269)
> at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:183)
> at org.apache.hadoop.hdfs.server.namenode.FSImage.loadEdits(FSImage.java:917)
> at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:762)
> at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:339)
> at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1275)
> at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:834)
> at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:817)
> at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:904)
> at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1158)
> at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1133)
> at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1906)
> at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1971)
> {code}
> We can add a tool to synchronize the latest fsimage from the standby namenode. This tool is mainly used by the administrator.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org