HDFS部署、原理与基本框架理论部分(大数据学习)

第二讲 HDFS部署、原理与基本框架(理论部分)

实践部分的链接:https://blog.csdn.net/xlkdxes/article/details/107739796

预习笔记

一、HDFS设计思想与特色

HDFS是分布式文件系统,基本思想是将大型文件分块存储到多个服务器上处理。如下图所示:

这时考虑文件存储方式。若使用文件为基本存储单位,首先由于各个文件大小不同,因此难以实现负载平衡。其次是只能利用一个节点资源处理文件,且无法发挥集群处理数据的优势,难以并行化处理。
于是考虑数据块(blocks)存储方式。如下图所示:

实际是将TB级文件切分成若干64MB数据块进行存储。其中每一个block数据块大小64MB,有三个副本。

采用HDFS有如下优点:

  • 易于拓展的分布式文件系统。
  • 具有高容错性。
  • 运行在大量普通廉价的机器上。
  • 为大量用户提供性能不错的文件存储服务。
  • 适合用于批处理。
  • 适合处理大数据量。
  • 流式文件访问。

当然也有如下缺点:

  • 低延迟的数据访问。
  • 存储小文件无优势。
  • 无法并发写入、文件随机修改。

二、HDFS架构

HDFS总体架构图

HDFS体系由四个核心的模块组成:NameNode,SecondaryNameNode,DataNode和Client。

(一)NameNode

作为整个HDFS的心脏,它的功能至关重要:

  1. 它在整个集群中扮演Master角色
  2. 它用来管理HDFS的namespace
    在系统中一个文件对应一个确切的位置与文件名,因此HDFS用来管理文件命名空间,所有关于文件的名称管理都在NameNode中进行。
  3. 配置副本策略
    一个数据块(block)一般有三个副本。
    ① 在Hadoop 0.17之前:
    副本1:同机架不同节点
    副本2:同机架另一不同节点
    副本3:不同机架另一节点

    ② 在Hadoop 0.17之后:
    副本1:同机架同节点
    副本2:不同机架同节点
    副本3:不同机架不同节点

    假如说一个DataNode挂了,这时NameNode与这个副本配置策略就发挥至关重要的作用,首先它会通过心跳包探测哪个DataNode挂了,之后它访问自己的元数据迅速查找受影响的数据块。之后用这个策略就可以分配数据块到不同DataNode,之后再让DataNode复制完成整个过程,具体过程见下图:
  4. 处理Client读写请求
    通过访问NameNode处理对应的读DataNode或者写DataNode请求,详细读写请求处理流程见HDFS工作原理。

此外,HDFS有以下核心文件

  1. VERSION
    该文件包含版本信息以及文件版本信息。
  2. seen_txid
    事务管理用文件,里面包含正在进行的进程编号。
  3. fsimage_*
    元数据镜像文件,里面保存文件系统的目录树。
  4. fsimage_*.md5
    校验元数据镜像文件。
  5. edits_*
    元数据操作日志,里面包含针对目录树的修改操作。

其中fsimage_*与edits_*是两个核心的文件,edits_*作用在fsimage上从而不断更新fsimage的内容。具体流程可见SecondaryNameNode功能。

NOTICE:The N

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值