Hadoop深入浅出之HDFS分析 第一讲:基本概念

第一讲:基本概念

1.1数据块(block)


默认基本存储单位块大小为:64M。JDW采用128M作为块大小;

和普通文件系统相同的是,HDFS中的文件是被分成64M一块进行数据块存储的。

不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不会占用整个数据块的存储空间.

blk_<id>保存的是HDFS的数据块,其中保存了具体的二进制数据。

blk_<id>.meta保存的是数据块的属性信息:版本信息,类型信息和checknum

当一个目录中的数据块达到一定数量的时候,则会创建子文件夹来保存数据块及数据块属性信息。


1.2元数据节点文件夹结构

VERSION文件是java properties文件,保存了HDFS的版本号。

namespaceID=788590977
cTime=0
storageType=NAME_NODE
layoutVersion=-32
layoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号。当HDFS的持久化数据结构发生了变化,如增加了一些其他的操作或者 字段信息,则版本号会在原来的基础上减1;Hadoop1.2.1版本中,layoutVersion的值是-41,它与Hadoop的发型版本号是两回事; layoutVersion主要在fsimage和edit日志文件、数据存储文件中使用。


namespaceID是文件系统的唯一标识符,是在文件系统初次格式化时生成的。在HDFS集群启动以后,使用namespaceID来识别集群中的Datanode节点,也就是说,在HDFS集群启动的时候,各个Datanode会自动向Namenode注册获取到namespaceID的值,然后将该值存储到Datanode节点的VERSION文件中。


cTime:表示Namenode存储对象(即Fsimage对象)创建的时间,但是在初始化时它的值是0。如果由于layoutVersion发生变化触发了一次升级过程,则会更新该时间字段的值。


storageType表示此文件夹中保存的是元数据节点的数据结构。


1.3文件系统命名空间映像文件及修改日志


当文件系统客户端(Client)进行写操作时,首先把它记录在修改日志中(edit log)

元数据节点(Namenode)在内存中保存了文件系统的元数据信息。在记录了修改日志(edit log)后,元数据节点(Namenode)则修改内存中的数据结构。

每次的写操作成功之前,修改日志都会同步(sync)到文件系统。

fsimage文件,也即命名空间映像文件,是内存中的元数据在硬盘上的checkpoint,它是一种序列化的格式,并不能够在硬盘上直接修改。

同数据的机制相似,当元数据节点(Namenode)失败时,最新的checkpoint的元数据信息会从fsimage加载到内存中,然后逐一重新执行修改日志中的操作。

从元数据节点(Secondary Namenode)就是用来帮助元数据节点(Namenode)将内存中的元数据信息checkpoint到硬盘上的。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值