hadoop core fs包源码概要分析(hadoop 0.20.2 cdh3u3)

来源:互联网 发布:会议抽奖软件 编辑:程序博客网 时间:2024/05/17 02:36

UHP博客文章地址:http://yuntai.1kapp.com/?p=440

原创文章,转载请注明出处:http://blog.csdn.net/wind5shy/article/details/8090130

fs

BlockLocation

包含block长度,所在datanode列表和block在file中的offset信息。

BufferedFSInputStream

通过缓存优化FSInputStream读取。

ChecksumFileSystem

抽象的校验和文件系统,为每个裸文件创建一个校验和文件,在客户端生成和验证校验和。

CommonConfigurationKeys

包含common中使用配置属性key。

ContentSummary

目录或文件概要信息(长度、目录/文件数目、配额、已使用空间等)。

DF

文件系统磁盘空间用量统计shell。使用linux df命令获取mount点和java.io.File作为空间工具。

DU

文件系统磁盘空间用量统计shell。使用linux du命令获取mount点和java.io.File作为空间工具。

FileChecksum

表示文件校验和的抽象类。

FileStatus

文件的客户端信息(路径、长度、块、修改/访问时间、权限、用户等)抽象类。

FileSystem

文件系统抽象类。fs包含一个指示的唯一url、配置和用户。

·          管理创建fs实例。

·          包含一个静态fs cache,以 url、创建时分配唯一的long id和UserGroupInformation为key。

·          对fs中文件/目录的操作由实现类实现。

FileUtil

文件处理工具类。

FilterFileSystem

fs的代理类,内部封装一个fs。所有继承自fs的方法均由封装的方式实现。

FSDataInputStream

extends DataInputStream implementsSeekable, PositionedReadable,封装一个实现Seekable和PositionedReadable的InputStream,相关方法均由这个InputStream实现。

FSDataOutputStream

extends DataOutputStream implementsSyncable,内部类PositionCache(extends FilterOutputStream)包含一个FileSystem.Statistics引用(便于对写入数据进行统计)和记录流position的long。

FSInputChecker

extends FSInputStream,通过校验和验证输入流读取是否正确的抽象类。

FSInputStream

extends InputStream implements Seekable,PositionedReadable,有按位置读取功能的输入流抽象类。

FSOutputSummer

extends OutputStream,生成写出数据的校验和的抽象类。

FsShell

提供fs命令。

FsShellPermissions

提供文件权限相关命令。

FsStatus

表示fs容量信息。

FsUrlConnection

fs连接,通过连接来获取fs的输入流。

FsUrlStreamHandler

extends URLStreamHandler,处理fs url的类,和fs配置相关。

FsUrlStreamHandlerFactory

FsUrlStreamHandler工厂类。

GlobExpander

将正则表达式表示的文件路径pattern分隔为子一级的pattern,参见TestGlobExpander。

HarFileSystem

用来进行归档的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.

 */


LocalDirAllocator

通过轮叫(RoundRobin)为创建文件分配磁盘。根据请求的空间大小,依次从待选磁盘中选择有足够空间的磁盘进行分配。

此实现中磁盘实际上为配置中的目录;提供每个JVM可以使用多个allocator的功能;但没有考虑磁盘只读和在写入文件时空间用完的情况(磁盘被多处理共享)。

LocalFileSystem

本地fs。

MD5MD5CRC32FileChecksum

使用md5和crc32的校验和。

Path

文件/目录在fs中的路径。

PathFilter

路径过滤器接口。

PositionedReadable

可指定位置读接口。

RawLocalFileSystem

裸本地 fs。

Seekable

提供按位置查找功能的接口。

Syncable

提供同步缓存功能的接口。

Trash

回收站。

将删除的文件移动到用户的回收站目录(用户home目录下的.Trash子目录,移动都是通过通过rename实现)。文件首先被移动到.Trash目录的current目录中。回收站会定期checkpoint,checkpoint时将current目录中的文件移动到带checkpoint时间目录中,同时将超过一定期限的checkpoint目录删除。Emptier线程定期执行checkpoint.

 

ftp

FTPFileSystem

ftp fs,后台由apache ftp client实现,也就是对一个apacheftp进行了fs包装。

FTPInputStream

处理ftp fs的FSInputStream。

kfs

IFSImpl

Kfs适配操作接口。

KFSImpl

Kfs适配操作实现,内部封装一个KfsAccess,将KfsAccess操作和实现fs所需操作进行适配。

KFSInputStream

处理kfs的FSInputStream,内部封装一个KfsInputChannel,内部对KfsInputChannel操作和FSInputStream所需操作进行适配。

KFSOutputStream

处理kfs的OutputStream,内部封装一个KfsInputChannel,内部对KfsInputChannel操作和OutputStream所需操作进行适配。

KosmosFileSystem

通过kfs实现的fs,内部封装一个IFSImpl来实现fs相关操作。

permission

ChmodParser

处理chmod命令的分析器。

FsAction

处理读/写/执行action的枚举类。

FsPermission

处理文件/目录权限。

PermissionParser

处理文件/目录权限的分析器,子类有ChmodParser和UmaskParser。

PermissionStatus

权限状态,包括用户名,组名和FsPermission。

UmaskParser

处理umask命令的分析器。

s3

和s3native区别在于是基于块的,而后者是基于文件,文件大小限制为5G。

Block

block元数据,id和length。

FileSystemStore

存储和检索block和node的设施接口。

INode

文件元数据,包括类型(文件/目录)和相关block,不包括文件path。path由FileSystemStore处理后通过S3Service保存。

Jets3tFileSystemStore

FileSystemStore实现类,对应s3中的一个bucket。

内部封装一个S3Service和一个S3Bucket,通过S3Service操纵S3Bucket实现接口相关操作。

MigrationTool

将数据从旧版本s3 fs迁移到新版本fs的工具。迁移通过重写block元数据实现,不会影响到数据。

S3Credentials

从fs uri或配置中提取AWS证书。

S3FileSystem

s3 fs,内部封装一个FileSystemStore实现相关操作。

S3InputStream

s3 fs的FSInputStream,对应一个INode(文件)。

S3OutputStream

s3 fs的OutputStream,对应一个INode(文件)。

 

s3native

FileMetadata

存储在NativeFileSystemStore中的文件元数据,包括key(path),长度和最后修改时间。

Jets3tNativeFileSystemStore

NativeFileSystemStore实现类,实现同Jets3tFileSystemStore类似。

NativeFileSystemStore

基于key对文件进行管理的接口。

NativeS3FileSystem

s3native fs,实现同S3FileSystem类似。

PartialListing

包含以指定前缀(一般就是目录名)下所有FileMetadata信息。

 

shell

Command

fs命令抽象类。

CommandFormat

分析命令参数,验证参数格式。

CommandUtils

目前只有格式化count命令描述的工具方法。

Count

Count the number of directories, files,bytes, quota, and remaining quota.

fs count命令处理。

原创文章,转载请注明出处:http://blog.csdn.net/wind5shy/article/details/8090130


原创粉丝点击