申明:文中大部分的图表都来自于《Hadoop技术内幕:深入解析Hadoop Common 和HDFS架构设计与实现原理》,如果有侵权行为欢迎通知本文作者进行删除。
一、Java 文件系统
- 当前Java中的文件系统
- Java中的输入、输出流
- Java中输入流的详细情况
二、Hadoop 抽象文件系统
- Hadoop中当前抽象文件系统
(更多关于FileSystem的细节,请查看 Hadoop 关于文件系统的源码)
- Hadoop中的输入、输出流
Hadoop 中的输入流主要有 FSInputStream,FSDataInputStream
Hadoop 中的输出流主要有 FSOutputSummer,FSDataOutputStream
该类提供了,文件内容校验的功能,详细了解请看源码
- Hadoop 中和文件系统相关的,权限模块
Hadoop的权限系统和Linux的权限系统非常相似,详细请参考源码
三、Hadoop 具体文件系统
- FileSystem 层次结构
在 Hadoop 中有很对文件系统都对 FileSystem 提供了实现
其中的 ChecksumFileSystem: 用于在原始文件系统上添加校验功能
RawInMemoryFileSystem: 实现了基于内存的文件系统。我们重点看下ChecksumFileSystem
- ChecksumFileSystem 的实现
ChecksumFileSystem 对每个文件都会新建一个校验文件以“.”开头以“crc”结尾
ChecksumFileSystem 还包含了一个输入流和一个输出流
对输入流的大部分关于校验的操作都在 FSInputChecker 中实现
想对细节有了解的,建议去看源代码,其中还是有些非常优美的实现。