HDFS简介.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HDFS简介 2010-11-26 15:13 | 896次阅读 | 【已有1条评论】发表评论 来源:博客园 | 作者:李智 | 收藏到我的网摘 一、HDFS的基本概念 1.1、数据块(block) HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。 和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。 1.2、元数据节点(Namenode)和数据节点(datanode) 元数据节点用来管理文件系统的命名空间 其将所有的文件和文件夹的元数据保存在一个文件系统树中。 这些信息也会在硬盘上保存成以下文件:命名空间镜像(namespace image)及修改日志(edit log) 其还保存了一个文件包括哪些数据块,分布在哪些数据节点上。然而这些信息并不存储在硬盘上,而是在系统启动的时候从数据节点收集而成的。 数据节点是文件系统中真正存储数据的地方。 客户端(client)或者元数据信息(namenode)可以向数据节点请求写入或者读出数据块。 其周期性的向元数据节点回报其存储的数据块信息。 从元数据节点(secondary namenode) 从元数据节点并不是元数据节点出现问题时候的备用节点,它和元数据节点负责不同的事情。 其主要功能就是周期性将元数据节点的命名空间镜像文件和修改日志合并,以防日志文件过大。这点在下面会相信叙述。 合并过后的命名空间镜像文件也在从元数据节点保存了一份,以防元数据节点失败的时候,可以恢复。 1.2.1、元数据节点文件夹结构 VERSION文件是java properties文件,保存了HDFS的版本号。 layoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号。 namespaceID是文件系统的唯一标识符,是在文件系统初次格式化时生成的。 cTime此处为0 storageType表示此文件夹中保存的是元数据节点的数据结构。 1.2.2、文件系统命名空间映像文件及修改日志 当文件系统客户端(client)进行写操作时,首先把它记录在修改日志中(edit log) 元数据节点在内存中保存了文件系统的元数据信息。在记录了修改日志后,元数据节点则修改内存中的数据结构。 每次的写操作成功之前,修改日志都会同步(sync)到文件系统。 fsimage文件,也即命名空间映像文件,是内存中的元数据在硬盘上的checkpoint,它是一种序列化的格式,并不能够在硬盘上直接修改。 同数据的机制相似,当元数据节点失败时,则最新checkpoint的元数据信息从fsimage加载到内存中,然后逐一重新执行修改日志中的操作。 从元数据节点就是用来帮助元数据节点将内存中的元数据信息checkpoint到硬盘上的 checkpoint的过程如下: 从元数据节点通知元数据节点生成新的日志文件,以后的日志都写到新的日志文件中。 从元数据节点用http get从元数据节点获得fsimage文件及旧的日志文件。 从元数据节点将fsimage文件加载到内存中,并执行日志文件中的操作,然后生成新的fsimage文件。 从元数据节点奖新的fsimage文件用http post传回元数据节点 元数据节点可以将旧的fsimage文件及旧的日志文件,换为新的fsimage文件和新的日志文件(第一步生成的),然后更新fstime文件,写入此次checkpoint的时间。 这样元数据节点中的fsimage文件保存了最新的checkpoint的元数据信息,日志文件也重新开始,不会变的很大了。 1.2.3、从元数据节点的目录结构 1.2.4、数据节点的目录结构 数据节点的VERSION文件格式如下: blk_id保存的是HDFS的数据块,其中保存了具体的二进制数据。 blk_id.meta保存的是数据块的属性信息:版本信息,类型信息,和checksum 当一个目录中的数据块到达一定数量的时候,则创建子文件夹来保存数据块及数据块属性信息。 二、数据流(data flow) 2.1、读文件的过程 客户端(client)用FileSystem的open()函数打开文件 DistributedFileSystem用RPC调用元数据节点,得到文件的数据块信息。 对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。 DistributedFileSystem返回FSDataInputStream给客户端,用来读取数据。 客户端调用stream的read()函数开始读取数据。 DFSInputStream连接保存此文件第一个数据块的最近的

文档评论(0)

yyh892289 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档