HDFS 架构、组件【重要】

简介: HDFS 架构、组件【重要】

HDFS 是分布式文件系统,它默认的存储单元是 128MB 的数据块(hadoop1.x 为 64MB)。

HDFS 架构:

HDFS 的体系框架是 Master-Slave 主备结构,一个典型的 HDFS 通常由单个 NameNode 和多个 DataNode 组成,但是为备份元数据,一般还有一个 secondary namenode(HA 模式没有,standby namenode 代替 secondary namenode)。

 

1. Client:客户端

  • 会切分文件。文件上传 HDFS 的时候,Client 将文件切分成一个一个的 Block,然后进行存储。
  • 与 NameNode 交互,获取文件的位置信息。
  • 与 DataNode 交互,读取或者写入数据。
  • Client 提供一些命令来管理 HDFS,比如启动关闭 HDFS、访问 HDFS 目录及内容等

2. NameNode:名称节点,也称主节点

  • 整个 hadoop 集群中只有一个 namenode,它是整个系统的 “总管”,用来管理数据的元数据信息,不存储具体的数据。
  • 配置副本策略,Namenode 负责监控各个 DataNode 的健康状态,一旦发现某个 DataNode 宕掉,则将该 DataNode 移出 HDFS 并重新备份其上面的数据。
  • 处理客户端读写请求。

3. DataNode:数据节点,也称从节点。NameNode 下达命令,DataNode 执行实际的操作

  • datanode 是真正存储数据的地方,存储实际的数据块。
  • 执行数据块的读写操作。

4. Secondary NameNodesecondary namenode 用来辅助 namenode,但并不是 namenode 的热备,宕机时不能代替 namenode 进行工作。(测试环境用 secondary namenode,生产环境用集群高可用)

  • 辅助 NameNode,分担其工作量
  • 定期地将 namenode 的 fsimage 和 Edits 文件进行合并,并传输给 NameNode,防止日志文件过大。
  • 合并之后的 fsimage 会在 secondary namenode 中保存一份,当 namenode 节点挂掉时可辅助恢复 NameNode。

 

相关问题:

1.Secondary NameNode 工作机制

SecondaryNameNode 是 HDFS 分布式文件系统中的一个辅助组件,它的主要作用是定期合并 Fsimage 和 Edits 文件,当 NameNode 发生故障时,Secondary NameNode 可以将从 NameNode 中下载的最新的 FSimage 和 Edits 文件合并到本地,来保证 HDFS 元数据的一致性和完整性。

SecondaryNameNode 的工作机制包括以下几个方面:

1. 接收 NameNode 的 checkpoint 请求:

SecondaryNameNode 会接收来自 NameNode 的 checkpoint 请求,并向 NameNode 发送 checkpoint 请求。在这个过程中,SecondaryNameNode 会对 NameNode 的 edits 日志进行回滚,以保证元数据的一致性和完整性。

2. 定期合并 Fsimage 和 Edits 文件:

SecondaryNameNode 会定期地从 NameNode 下载最新的 Fsimage 和 Edits 文件,并将它们合并到本地。在这个过程中,SecondaryNameNode 会检查 Fsimage 和 Edits 文件的一致性和完整性,并将任何缺失的数据从 NameNode 下载到本地。

2.NN 和 2NN 有什么区别?

NameNode 是整个集群的 “大脑”,需要处理大量的元数据操作和查询请求,维护整个分布式文件系统的命名空间和元数据信息。

Secondary NameNode 是 NameNode 的一个辅助组件,并不是 NameNode 的备份结点,无法代替 NameNode 的工作。它的主要作用是定期合并 FSimage 和 Edits 文件,当 NameNode 发生故障时,Secondary NameNode 可以将从 NameNode 中下载的最新的 FSimage 和 Edits 文件合并到本地,来保证 HDFS 元数据的一致性和完整性。

因此,NameNode 和 Secondary NameNode 的主要区别在于它们的职责和作用。NameNode 负责管理文件系统的元数据和文件信息,而 SecondaryNameNode 主要用于定期合并 FsImage 和 Edits 文件,来保证 HDFS 元数据的一致性和完整性。

3.secondary namenode 什么时候拉取 namenode 的数据进行合并

NameNode 启动时会加载之前未合并的 FSImage 和 Edits 文件进行合并,之后 SecondaryNameNode 每隔一小时执行一次,这个时间间隔可以通过参数自定义设置。

相关文章
|
11月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
500 7
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
1785 70
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
1219 6
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
1039 0
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
1151 9
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
1636 3
【赵渝强老师】基于大数据组件的平台架构
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
448 9
|
消息中间件 监控 Java
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
411 1
|
存储 缓存 分布式计算
【赵渝强老师】基于RBF的HDFS联邦架构
最新版Hadoop实现了基于Router的联盟架构,增强了集群管理能力。Router将挂载表从客户端中分离,解决了ViewFS的问题。RBF架构包括Router和State Store两个模块,其中Router作为代理服务,负责解析ViewFS并转发请求至正确子集群,State Store则维护子集群的状态和挂载表信息。
543 0

热门文章

最新文章