[
https://issues.apache.org/jira/browse/HBASE-28427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang resolved HBASE-28427.
-------------------------------
Fix Version/s: 2.6.0
2.4.18
3.0.0-beta-2
2.5.9
Hadoop Flags: Reviewed
Assignee: guluo
Resolution: Fixed
Pushed all active branches.
THanks [~guluo] fo contributing!
> FNFE related to 'master:store' when moving archived hfiles to global archived
> dir
> ---------------------------------------------------------------------------------
>
> Key: HBASE-28427
> URL: https://issues.apache.org/jira/browse/HBASE-28427
> Project: HBase
> Issue Type: Improvement
> Components: master
> Environment: Centos7
> hbase-4.0.0-alpha-1-SNAPSHOT
> Reporter: guluo
> Assignee: guluo
> Priority: Minor
> Labels: pull-request-available
> Fix For: 2.6.0, 2.4.18, 3.0.0-beta-2, 2.5.9
>
>
> Sometimes we encounter the following log.
> {code:java}
> 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] {code}
> 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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)