为了为不同的文件系统提供一个统一的接口,Hadoop提供了一个抽象的文件系统,而Hadoop分布式文件系统(Hadoop Distributed File System, HDFS)只是这个抽象文件系统的一个具体实现。Hadoop抽象文件系统接口主要由抽象类org.apache.hadoop.fs.FileSystem提供
默认成员变量:
//默认配置项 "fs.defaultFS";
public static final String FS_DEFAULT_NAME_KEY =
CommonConfigurationKeys.FS_DEFAULT_NAME_KEY;
// FS_DEFAULT_NAME_DEFAULT = "file:///";
public static final String DEFAULT_FS =
CommonConfigurationKeys.FS_DEFAULT_NAME_DEFAULT;
public static final Log LOG = LogFactory.getLog(FileSystem.class);
/**
* Priority of the FileSystem shutdown hook.
*/
public static final int SHUTDOWN_HOOK_PRIORITY = 10;
/** FileSystem cache */
static final Cache CACHE = new Cache();
/** The key this instance is stored under in the cache. */
private Cache.Key key;
//记录每个文件系统的统计信息的映射
private static final Map<Class<? extends FileSystem>, Statistics>
statisticsTable =
new IdentityHashMap<Class<? extends FileSystem>, Statistics>();
//该文件的统计信息
protected Statistics statistics;
//当文件系统关闭或者jvm退出之后,需要把cache文件情况,该变量保存了与缓存中文件所对应的path 而且这些path都是排好序的
private Set<Path> deleteOnExit = new TreeSet<Path>();
boolean resolveSymlinks;
内部类Cache
private