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

本文详细介绍了HDFS的部署、架构、工作原理,包括NameNode、SecondaryNameNode、DataNode和Client的角色及交互。讨论了HDFS的优缺点,如易于拓展、高容错性,以及不适用于低延迟数据访问和小文件存储。同时,解释了HDFS的写入和读取流程,以及Block Recovery和fsimage Loading等关键过程。
摘要由CSDN通过智能技术生成

第二讲 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 Name Node is not in the data path. The Name Node only provides the map of where data is and where data should go in the cluster (file system metadata)
因此NameNode只能反映数据块的映射。

(二)SecondaryNameNode

备用NameNode显然与NameNode有密切关系,它有重要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值