guluo created HBASE-28427:
-----------------------------

             Summary: 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


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)

Reply via email to