2.HDFS 架构

目录

概述

官方文档快递

环境:hadoop 版本 3.3.6
相关文章速递

架构

HDFS

HDFS 架构总结如下:

  • a master/slave architecture 一主多从架构
  • a file is split into one or more blocks and these blocks are stored in a set of DataNodes 一个文件会被拆分成1或者多个 block (块),然后存储在 DN 上
  • NameNode:NN
    • file system namespace 文件系统命名空间
    • 执行文件系统的命名空间操作:打开、关闭、重命名文件或者文件目录
    • 记录数据 block (块) 对应的 DN
  • DataNode:DN

HDFS 组件职责

  • NN
    • 维护和管理文件系统的命名空间
    • 副本策略
    • Block 的映射信息
    • 处理客户端读写请求
  • DN
    • 存储 Block
    • 真正执行数据块的读写操作
  • Client
    • 与 NN 交互,获取到文件的元数据信息
    • 与 DN 交互,执行数据块的读写操作
    • 管理 HDFS
  • SNN:Secondary NameNode
    • 不是 NN 的热备
    • 分担一些 NN 工作量:定期合并 FsImage Edits 完成后推送到 NN
  • Block
    • hadoop3.x 默认大小 128M

副本

For the common case, when the replication factor is three, HDFS's placement policy is to put one replica on the local machine if the writer is on a datanode, otherwise on a random datanode in the same rack as that of the writer, another replica on a node in a different (remote) rack, and the last on a different node in the same remote rack.

上述两个机架,一个机架三台机器。

通常情况下,副本因子为3

  • 第一个副本:client 所处的节点上,如果 client 在集群外,在相同机架上(rack)随机选择一个
  • 第二个副本:在另外一个机架上随机选择一个节点
  • 第三个副本:在第二个副本所在机架上随机选择一个节点(与二个副本不在一个节点)

HDFS数据写入流程

先来张图,如下

  • 客户端发送请求 put 一个文件,由 NN 根据元数据判断文件是否存在,是否具备权限,根据副本摆放策略,返回响应数据给 client 端
  • client 根据响应数据,将第一个 block 写入 DN1 , DN1、DN2、DN3 之间会同步数据,而不是由 client 执行

NN 工作原理

老规矩上个图易理解

重点总结如下:

  • NN 元数据采取的是 内存+磁盘的方式管理
    • FsImage
    • Edits 每次操作都以追加的方式写入日志
    • 完整的元数据信息 = FsImage + Edits
  • 相关配置
    • dfs.namenode.checkpoint.txns
    • dfs.namenode.checkpoint.period

DN 工作原理

老规矩上图

  • 向 NN 发起注册
  • Block 信息汇报
    • dfs.blockreport.intervalMsec
  • DN 发起心跳
    • dfs.heartbeat.interval (默认 3秒)
    • dfs.namenode.heartbeat.recheck-interval (再次 recheck 默认 5分钟)
  • 超时掉线 10分钟30秒 检测不到心跳,直接掉线
    • timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval

结束

至此,HDFS 架构 就结束了,如有疑问,欢迎评论区留言。

相关推荐
hai3152475437 小时前
RISC-V核E203核前向旁路的架构性顽疾
驱动开发·架构·硬件架构·硬件工程·risc-v
意图共鸣7 小时前
意图共鸣科技《认知智能白皮书》——感知与执行分离:认知架构(CA)如何重塑大模型底层结构
人工智能·架构
王莎莎-MinerU8 小时前
MinerU 深度技术解析:从架构原理到生产部署的全面指南
css·人工智能·自然语言处理·架构·ocr·个人开发
canonical_entropy8 小时前
Harness Engineering 之外:从非线性动力系统控制理解吸引子引导工程
架构·aigc·ai编程
Jiude8 小时前
AI 写代码太快之后,团队协作反而更难了
人工智能·架构·github
AI 小老六11 小时前
Claude Code 如何压缩上下文:Microcompact、Prompt Cache 与 cache_edits 工程拆解
数据库·人工智能·ai·语言模型·架构·系统架构
意图共鸣12 小时前
意图共鸣科技发布《认知智能白皮书》:AI认知架构(CA)与认知操作系统(COS)——为什么大模型之外还需要一层认知调度层,技术原理与架构设想
人工智能·科技·架构
guslegend14 小时前
第4讲:应用架构与代码组织
数据结构·人工智能·架构
cfm_291414 小时前
MySQL8.0 核心新特性详解(架构/性能/SQL/索引/安全全覆盖)
sql·安全·架构