Hadoop核心--HDFS

什么是HDFS?

  HDFS(Hadoop Distributed File System),分布式文件存储系统。源自于Google的GFS论文,是GFS的克隆版。与其他分布式文件系统相比,它具有很高的容错能力,适合部署在廉价的机器上;另外它能提供高吞吐量的数据访问,适合海量数据的存储。

HDFS特点

  易于扩展

  运行在普通廉价的机器上,提供容错机制

  为大量用户提供高性能的海量数据存储服务

HDFS架构体系

HDFS架构主要包括一个NameNode、多个DataNode、Block等。   

一、数据块 Block

   HDFS上的文件被切分成块进行存储,每个块的默认大小为64M,它是文件存储处理的逻辑单元。每个块有多个副本存储在不同的机器上,这是Hadoop的容错机制。

 二、节点

  1、NameNode

    HDFS也是一种主从架构,而NameNode就属于主节点,主要负责管理文件系统的命名空间以及客户端对文件的访问。

  2、DataNode

    属于从节点,主要负责处理文件内容的读写请求。数据块在DataNode上是以文件形式存储在磁盘上,包括数据本身和元数据两部分。 

  3、SecondaryNameNode

    辅助NameNode工作,它可以节省NameNode读取FsImage的时间(后面会介绍)

三、数据管理

  NameNode中存储的是元数据,记录了数据所在DataNode的Block。当向HDFS写入数据时,首先是NameNode记录元数据,并告知要写入的DataNode节点地址,然后真正进行数据写入的是DataNode节点。而写入DataNode节点的block,也会复制备份到邻近DataNode节点上,这也是数据安全性的一个重要保障。

四、数据容错

  读取数据时,即DataNode读取Block,首先会计算checksum,如果此时的checksum与初始建立的值不一致时,则认为该Block已损坏。此时会重新从最近的备份DataNode上读取Block,同时NameNode也会标记该Block已损坏,并从其他DataNode节点将数据进行修复,然后还需要继续验证其checksum。

五、启动流程

  1、NameNode格式化,然后在持久化fsimage(镜像)和edits(日志)

  2、启动NameNode,并且加载fsimage和edits文件

  3、启动DataNode,并向NameNode进行注册,发送Block report

  4、创建目录,此时会伴随fsimage和edits文件的更新

  5、存放文件,也会伴随fsimage和edits文件的更新

  以上就是HDFS启动的基本流程,在这个过程中,还有一个概念是安全模式。这是HDFS在启动过程中的一个文件保护模式,具体流程是,当NameNode启动时,需要加载fsimage和edits文件信息,其实就是更新NameNode元数据的过程。此时HDFS就进入了安全模式,在该模式下,只能从HDFS读取文件,但是无法写入,目的就是防止对NameNode载入产生影响。当NameNode加载fsimage和edits文件完成后,30s后会自动退出安全模式。

  在介绍HDFS节点时,还提到了一个SecondaryNameNode节点,它的作用是辅助NameNode,具体的流程是:在NameNode启动时,需要加载fsimage和edits文件,那么如何缩短读取时间呢?SecondaryNameNode就起作用了,它会定期(默认1h)对fsimage和edits文件进行合并,这样当再次启动NameNode时,读取的是合并后的fsimage和edits文件,效率就提高了,读取时间相对缩短。具体流程如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值