欢迎来到天天文库
浏览记录
ID:39093855
大小:363.50 KB
页数:8页
时间:2019-06-24
《HDFS原理 架构和副本机制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、文章内容来自Java私塾2013-12-27(Java私塾)HDFS原理架构和副本机制第一部分:当前HDFS架构详尽分析 HDFS架构•NameNode•DataNode•SencondaryNameNode 数据存储细节更多内容在‘java私塾官网’文章内容来自Java私塾2013-12-27NameNode目录结构Namenode 的目录结构: ${ dfs.name.dir}/current/VERSION /edits
2、 /fsimage /fstime dfs.name.dir 是 hdfs-site.xml 里配置的若干个目录组成的列表。NameNode Namenode 上保存着 HDFS 的名字空间。对于任何对文件系统元数据产生修改的操作, Namenode 都会使用一种称为 EditLog 的事务日志记录下来。例如,在 HDFS 中创建一个文件, Namenode 就会在 Editlog
3、 中插入一条记录来表示;同样地,修改文件的副本系数也将往 Editlog 插入一条记录。 Namenode 在本地操作系统的文件系统中存储这个 Editlog 。整个文件系统的名 字空间,包括数据块到文件的映射、文件的属性等,都存储在一个称为 FsImage 的文件中,这 个文件也是放在 Namenode 所在的本地文件系统上。 Namenode 在内存中保存着整个文件系统的名字空间和文件数据块映射 (Blockmap) 的映像 。这个关键的元数据结构设计得很紧凑,因而一个有 4G 内存的 Namenode 足够支撑大量的文件 和目录。当
4、Namenode 启动时,它从硬盘中读取Editlog 和 FsImage ,将所有 Editlog 中的事务作 用在内存中的 FsImage 上,并将这个新版本的 FsImage 从内存中保存到本地磁盘上,然后删除 旧的 Editlog ,因为这个旧的 Editlog 的事务都已经作用在 FsImage 上了。这个过程称为一个检查点 (checkpoint) 。在当前实现中,检查点只发生在 Namenode 启动时,在不久的将来将实现支持 周期性的检查点。 HDFSNameSpace HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建
5、目 录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数 现有的文件系统类似:用户可以创建、删除、移动或重命名文件。当前, HDFS 不支持用户磁盘配额和访问权限控制,也不支持硬链接和软链接。但 是 HDFS 架构并不妨碍实现这些特性。更多内容在‘java私塾官网’文章内容来自Java私塾2013-12-27 Namenode 负责维护文件系统命名空间,任何对文件系统名字空间或属 性的修改都将被 Namenode 记录下来。应用程序可以设置 HDFS 保存的文件 的副本数目。文件副本的数目称为文件的副本系数,这个信息也是由 Na
6、menode 保存的。DataNode Datanode 将 HDFS 数据以文件的形式存储在本地的文件系统中,它并不知道有 关 HDFS 文件的信息。它把每个HDFS 数据块存储在本地文件系统的一个单独的文件 中。 Datanode 并不在同一个目录创建所有的文件,实际上,它用试探的方法来确定 每个目录的最佳文件数目,并且在适当的时候创建子目录。在同一个目录中创建所 有的本地文件并不是最优的选择,这是因为本地文件系统可能无法高效地在单个目 录中支持大量的文件。 当一个 Datanode 启动时,它会扫描本地文件系统,产生一个这
7、些本地文件对应 的所有 HDFS 数据块的列表,然后作为报告发送到 Namenode ,这个报告就是块状态 报告。SecondaryNameNode SecondaryNameNode 定期合并 fsimage 和 edits 日志,将 edits 日志文件大小控制在一个限度下。配置SecondaryNameNode• conf/masters文件指定的为SecondaryNameNode节点•修改在masters文件中配置了的机器上的conf/hdfs-site.xml文件,加上如下选项: dfs.h
8、ttp.a
此文档下载收益归作者所有