Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-28427

FNFE related to 'master:store' when moving archived hfiles to global archived dir

Log workAgile BoardRank to TopRank to BottomAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      Sometimes we encounter the following log.

      2024-02-26T18:11:34,934 WARN  [master:store-Store-Compactor] region.MasterRegionFlusherAndCompactor: Failed to move archived hfiles from file:/root/hbase-4.0.0-alpha-1-SNAPSHOT/tmp/hbase/MasterData/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/state to global dir file:/root/hbase-4.0.0-alpha-1-SNAPSHOT/tmp/hbase/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/statejava.io.FileNotFoundException: File file:/root/hbase-4.0.0-alpha-1-SNAPSHOT/tmp/hbase/MasterData/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/state does not exist        at org.apache.hadoop.fs.RawLocalFileSystem.listStatus(RawLocalFileSystem.java:733) ~[hadoop-common-3.3.5.jar:?]        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:2045) ~[hadoop-common-3.3.5.jar:?]        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:2089) ~[hadoop-common-3.3.5.jar:?]        at org.apache.hadoop.fs.ChecksumFileSystem.listStatus(ChecksumFileSystem.java:970) ~[hadoop-common-3.3.5.jar:?]        at org.apache.hadoop.hbase.master.region.MasterRegionUtils.moveFilesUnderDir(MasterRegionUtils.java:42) ~[hbase-server-4.0.0-alpha-1-SNAPSHOT.jar:4.0.0-alpha-1-SNAPSHOT]        at org.apache.hadoop.hbase.master.region.MasterRegionFlusherAndCompactor.moveHFileToGlobalArchiveDir(MasterRegionFlusherAndCompactor.java:145) ~[hbase-server-4.0.0-alpha-1-SNAPSHOT.jar:4.0.0-alpha-1-SNAPSHOT]        at org.apache.hadoop.hbase.master.region.MasterRegionFlusherAndCompactor.compact(MasterRegionFlusherAndCompactor.java:157) ~[hbase-server-4.0.0-alpha-1-SNAPSHOT.jar:4.0.0-alpha-1-SNAPSHOT]        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_231]        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_231]        at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_231] 

      Analysis:
      Against 'master:store', Archived hfiles would first be placed in {hbase.rootdir}/MasterData/archive/ after compacting, and then moved to global archived dir.
      'master:store' has 3 column families:proc,rs,state, if there is empty in one of column families,such as state, no files in this column families will be archived, and {hbase.rootdir}/MasterData/archive/data/master/store/1595e783b53d99cd5eef43b6debb2682/state would do not exist.
      Finally, we will get FileNotFoundException when moving these archived hfiles to global archived dir.
       
      Although,Current code can avoid this effecting by catching Exception, However it is maybe better to check the dir exists before moving.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            guluo guluo Assign to me
            guluo guluo
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment