hadoop core fs包源码概要分析(hadoop 0.20.2 cdh3u3)
2012-10-19 15:44
423 查看
UHP博客文章地址:http://yuntai.1kapp.com/?p=440
[b]原创文章,转载请注明出处:http://blog.csdn.net/wind5shy/article/details/8090130
[/b]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
相关文章推荐
- hadoop 0.20.2 cdh3u6 运行单节点任务卡死,但不报错,问题分析。
- scribe 2.1 + hadoop-0.20.2-cdh3u3 + thrift-0.2.0 bug
- Hadoop源码分析20:datanode概要
- Hadoop源码分析21:namenode概要
- Hadoop源码分析22:dfsclient概要
- 基于Hadoop的日志收集框架---Chukwa的源码分析(数据处理)
- Hadoop基础之MapReduce原理、序列化和源码分析
- hadoop之BlockPoolManager源码分析
- Hadoop 1.x的Shuffle源码分析之2
- 研磨Hadoop源码(五)ResourceManager启动分析1
- Hadoop源码分析HDFS ClientProtocol——create
- fork源码概要分析
- Hadoop源码分析:FileSystem类
- Hadoop心跳机制源码分析
- Hadoop-2.4.1学习之NameNode -format源码分析
- Hadoop RCFile存储格式详解(源码分析、代码示例)
- Hadoop 中 IPC 的源码分析
- Hadoop源码分析10: IPC流程(5) Atomic
- Hadoop源码分析37 RPC的线程协作
- Hadoop源码分析的思路