包含block长度,所在datanode列表和block在file中的offset信息。
通过缓存优化FSInputStream读取。
抽象的校验和文件系统,为每个裸文件创建一个校验和文件,在客户端生成和验证校验和。
包含common中使用配置属性key。
目录或文件概要信息(长度、目录/文件数目、配额、已使用空间等)。
文件系统磁盘空间用量统计shell。使用linux df命令获取mount点和java.io.File作为空间工具。
文件系统磁盘空间用量统计shell。使用linux du命令获取mount点和java.io.File作为空间工具。
表示文件校验和的抽象类。
文件的客户端信息(路径、长度、块、修改/访问时间、权限、用户等)抽象类。
文件系统抽象类。fs包含一个指示的唯一url、配置和用户。
· 管理创建fs实例。
· 包含一个静态fs cache,以 url、创建时分配唯一的long id和UserGroupInformation为key。
· 对fs中文件/目录的操作由实现类实现。
文件处理工具类。
fs的代理类,内部封装一个fs。所有继承自fs的方法均由封装的方式实现。
extends DataInputStream implementsSeekable, PositionedReadable,封装一个实现Seekable和PositionedReadable的InputStream,相关方法均由这个InputStream实现。
extends DataOutputStream implementsSyncable,内部类PositionCache(extends FilterOutputStream)包含一个FileSystem.Statistics引用(便于对写入数据进行统计)和记录流position的long。
extends FSInputStream,通过校验和验证输入流读取是否正确的抽象类。
extends InputStream implements Seekable,PositionedReadable,有按位置读取功能的输入流抽象类。
extends OutputStream,生成写出数据的校验和的抽象类。
提供fs命令。
提供文件权限相关命令。
表示fs容量信息。
fs连接,通过连接来获取fs的输入流。
extends URLStreamHandler,处理fs url的类,和fs配置相关。
FsUrlStreamHandler工厂类。
将正则表达式表示的文件路径pattern分隔为子一级的pattern,参见TestGlobExpander。
用来进行归档的fs。
/**
* This is an implementation of the HadoopArchive
* Filesystem. This archive Filesystemhas index files
* of the form _index* and has contents of theform
* part-*. The index files store the indexes of the
* real files. The index files are of the form_masterindex
* and _index. The master index is a level ofindirection
* in to the index file to make the look upsfaster. the index
* file is sorted with hash code of the paths thatit contains
*and the master index contains pointers to thepositions in
* index for ranges of hashcodes.
*/
通过轮叫(RoundRobin)为创建文件分配磁盘。根据请求的空间大小,依次从待选磁盘中选择有足够空间的磁盘进行分配。
此实现中磁盘实际上为配置中的目录;提供每个JVM可以使用多个allocator的功能;但没有考虑磁盘只读和在写入文件时空间用完的情况(磁盘被多处理共享)。
本地fs。
使用md5和crc32的校验和。
文件/目录在fs中的路径。
路径过滤器接口。
可指定位置读接口。
?裸本地 fs。
提供按位置查找功能的接口。
提供同步缓存功能的接口。
回收站。
将删除的文件移动到用户的回收站目录(用户home目录下的.Trash子目录,移动都是通过通过rename实现)。文件首先被移动到.Trash目录的current目录中。回收站会定期checkpoint,checkpoint时将current目录中的文件移动到带checkpoint时间目录中,同时将超过一定期限的checkpoint目录删除。Emptier线程定期执行checkpoint.
ftp fs,后台由apache ftp client实现,也就是对一个apacheftp进行了fs包装。
处理ftp fs的FSInputStream。
Kfs适配操作接口。
Kfs适配操作实现,内部封装一个KfsAccess,将KfsAccess操作和实现fs所需操作进行适配。
处理kfs的FSInputStream,内部封装一个KfsInputChannel,内部对KfsInputChannel操作和FSInputStream所需操作进行适配。
处理kfs的OutputStream,内部封装一个KfsInputChannel,内部对KfsInputChannel操作和OutputStream所需操作进行适配。
通过kfs实现的fs,内部封装一个IFSImpl来实现fs相关操作。
处理chmod命令的分析器。
处理读/写/执行action的枚举类。
处理文件/目录权限。
处理文件/目录权限的分析器,子类有ChmodParser和UmaskParser。
权限状态,包括用户名,组名和FsPermission。
处理umask命令的分析器。
和s3native区别在于是基于块的,而后者是基于文件,文件大小限制为5G。
block元数据,id和length。
存储和检索block和node的设施接口。
文件元数据,包括类型(文件/目录)和相关block,不包括文件path。path由FileSystemStore处理后通过S3Service保存。
FileSystemStore实现类,对应s3中的一个bucket。
内部封装一个S3Service和一个S3Bucket,通过S3Service操纵S3Bucket实现接口相关操作。
将数据从旧版本s3 fs迁移到新版本fs的工具。迁移通过重写block元数据实现,不会影响到数据。
从fs uri或配置中提取AWS证书。
s3 fs,内部封装一个FileSystemStore实现相关操作。
s3 fs的FSInputStream,对应一个INode(文件)。
s3 fs的OutputStream,对应一个INode(文件)。
存储在NativeFileSystemStore中的文件元数据,包括key(path),长度和最后修改时间。
NativeFileSystemStore实现类,实现同Jets3tFileSystemStore类似。
基于key对文件进行管理的接口。
s3native fs,实现同S3FileSystem类似。
包含以指定前缀(一般就是目录名)下所有FileMetadata信息。
fs命令抽象类。
分析命令参数,验证参数格式。
目前只有格式化count命令描述的工具方法。
Count the number of directories, files,bytes, quota, and remaining quota.
fs count命令处理。