看namenode的启动代码,在初始化的时候
startTrashEmptier(conf);
有这个么东西,启动TrashEmptier,empire翻译成排空装置,我擦,起名起得很牛逼啊、
private void startTrashEmptier(Configuration conf) throws IOException { this.emptier = new Thread(new Trash(conf).getEmptier(), "Trash Emptier"); this.emptier.setDaemon(true); this.emptier.start(); }看到了吗,启动一个后台线程,名字叫Trash Emptier再搞这个事情。看看Emptier这个线程在搞啥呢...
private static class Emptier implements Runnable { private Configuration conf; private FileSystem fs; private long interval; public Emptier(Configuration conf) throws IOException { this.conf = conf; this.interval = conf.getLong("fs.trash.interval", 60) * MSECS_PER_MINUTE;//拿到清理间隔 this.fs = FileSystem.get(conf);//拿到hdfs的文件句柄。 } public void run() { if (interval == 0) return; //如果清理间隔为0 ,还启动个屁