1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.master.cleaner;
19
20 import java.util.List;
21
22 import org.apache.hadoop.hbase.classification.InterfaceAudience;
23 import org.apache.hadoop.conf.Configuration;
24 import org.apache.hadoop.fs.FileSystem;
25 import org.apache.hadoop.fs.Path;
26 import org.apache.hadoop.hbase.Stoppable;
27 import org.apache.hadoop.hbase.io.HFileLink;
28 import org.apache.hadoop.hbase.regionserver.StoreFileInfo;
29
30
31
32
33 @InterfaceAudience.Private
34 public class HFileCleaner extends CleanerChore<BaseHFileCleanerDelegate> {
35
36 public static final String MASTER_HFILE_CLEANER_PLUGINS = "hbase.master.hfilecleaner.plugins";
37
38
39
40
41
42
43
44
45 public HFileCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,
46 Path directory) {
47 super("HFileCleaner", period, stopper, conf, fs, directory, MASTER_HFILE_CLEANER_PLUGINS);
48 }
49
50 @Override
51 protected boolean validate(Path file) {
52 if (HFileLink.isBackReferencesDir(file) || HFileLink.isBackReferencesDir(file.getParent())) {
53 return true;
54 }
55 return StoreFileInfo.validateStoreFileName(file.getName());
56 }
57
58
59
60
61 public List<BaseHFileCleanerDelegate> getDelegatesForTesting() {
62 return this.cleanersChain;
63 }
64 }