SlideShare ist ein Scribd-Unternehmen logo
1 von 22
HDFS源代码学习笔记
目录 Google File System体系结构 HDFS体系结构 具体设计:NameNode & DataNode 读文件块 写文件块 HDFS Federation体系结构 个人总结
Google File System
HDFS体系结构     HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。 还有一个Secondary NameNode。周期性将NameNode的命名空间镜像文件和修改日志合并以防日志文件过大。
当前的体系结构提供两层服务: ,[object Object],管理目录、文件和块的命名空间,支持文件或目录的文件系统操作(创建、删除、修改等)。 ,[object Object]
块的管理(块的创建、删除等操作、副本的放置等)
块数据的物理存储和访问。,[object Object]
块的管理(Block Management):支持客户端对块文件的访问。DataNode实现: 块数据的物理存储和访问。Datanode向NameNode的块管理层(非命名空间管理层)注册以形成存储层。
NameNode的详细设计 NameNode主要存储了元数据信息和支持客户端对文件的访问。主要包含两大类:NameNode服务器类(Server类和HttpServer类)和FSNamesystem类。FSNamesystem类实际负责文件系统的管理。而NameNode服务器类则主要向外提供RPC接口和HTTP接口等服务。
根据文件名定位文件块 NameNode主要工作之一就是向请求读写操作的客户端提供所处理文件在DataNode中的具体位置。 根据客户端提供的文件名查找该文件对应块所在的Datanode的详细位置,主要分两步: ,[object Object]
对于块列表中的每一块,从BlocksMap中保存的从Block到BlockInfo映射表中得到BlockInfo,而BlockInfo则记录该块所在的DataNode的描述信息(DataNodeDescriptor)。,[object Object]
两大存储类
主要使用两大存储类来记录整个文件系统:FSDataset类与Storage类。 Storage类的FSVolume与Storage类的StorageDirectory相对应。 Storage类主要是通常的文件组织形式的逻辑结构,便于以常用I/O接口对其进行访问。 FSDataset类则主要针对hadoop自身访问特性而组织文件存储的另一种逻辑结构形式。 整个文件系统在本地磁盘中以Storage类来存储整个文件系统,而运行前必须将以Storage类存储的文件系统转换为FSDdataset类。
DataNode的工作流程 启动DataNode之前需要与NameNode进行握手实现DataNode与NameNode布局版本一致。 初始化DataNode的FSDataset对象,即初始化该DataNode所管理所有的存储空间。 向NameNode注册,告知NameNode该DataNode的主机名、存储ID以及提供服务的端口号等信息(并没有告知详细的Block信息)。 进入循环,每隔一段时间向NameNode发送心跳(heartbeat),其中主要内容如下图所示: NameNode根据接收到的心跳进行处理,并返回相应的命令给DataNode,使其继续执行工作。
上述DataNode与NameNode之间的交互始终围绕着如下原则进行:NameNode负责整个文件系统的命名空间的管理。真正的文件系统操作(读、写、修改等)的数据并不经过NameNode,而仅将这一过程反映到NameNode所管理的命名空间中,实际的工作是由DataNode来完成的。
读文件过程
写文件过程
局限性 ,[object Object],    整个文件系统的元数据都存储在NameNode的内存中。节点的内存大小限制了元数据的大小。 ,[object Object],     NameNode单个节点的吞吐量限制了整个文体系统操作的吞吐量。 ,[object Object]
可用性,[object Object]
各个NameNode之间是相互独立的,不存在相互之间的协调。

Weitere ähnliche Inhalte

Ähnlich wie Hdfs (11)

MongoDB gridfs
MongoDB gridfsMongoDB gridfs
MongoDB gridfs
 
第4章 数据库管理
第4章 数据库管理第4章 数据库管理
第4章 数据库管理
 
Hdfs
HdfsHdfs
Hdfs
 
Overlayfs and VFS
Overlayfs and VFSOverlayfs and VFS
Overlayfs and VFS
 
Hdfs raid migration to hadoop 1.x
Hdfs raid migration to hadoop 1.x Hdfs raid migration to hadoop 1.x
Hdfs raid migration to hadoop 1.x
 
Hdfs原理及实现
Hdfs原理及实现Hdfs原理及实现
Hdfs原理及实现
 
Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfs
 
Dfs ning
Dfs ningDfs ning
Dfs ning
 
Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威
 
[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1
 
IT03
IT03IT03
IT03
 

Hdfs