HDFS核心角色

Hadoop 三大组件之HDFS hadoop三大组件之HDFS分布式文件存储 阅读详情

HDFS核心角色详解

HDFS(Hadoop Distributed File System)采用经典的Master/Slave架构,各角色分工明确,共同构建高容错性的分布式文件系统。以下是HDFS集群中的核心角色及其职责:

一、核心角色架构图


mermaidCopy Code

graph TD subgraph Master Nodes NN[NameNode] SNN[Secondary NameNode] JN[JournalNode] ZKFC[ZKFailoverController] end subgraph Slave Nodes DN1[DataNode 1] DN2[DataNode 2] DN3[DataNode 3] DN4[DataNode ...] end NN -->|元数据管理| DN1 NN -->|元数据管理| DN2 NN -->|元数据管理| DN3 SNN -->|Checkpoint| NN JN -->|共享编辑日志| NN ZKFC -->|故障转移| ZK[ZooKeeper]

二、核心角色详解

1. NameNode(NN) - ‌大脑角色‌

‌核心职责‌:

  • ‌元数据中心‌:维护文件系统的命名空间(Namespace)
    • 文件/目录的层级结构
    • 文件到数据块的映射关系
    • 数据块位置元数据(由DataNode上报)
  • ‌协调客户端访问‌:处理所有文件系统操作请求
  • ‌决策中心‌:
    • 数据块副本放置策略(机架感知)
    • 数据块复制管理
    • 负载均衡决策

‌关键元数据文件‌:

  • FsImage:文件系统镜像(完整快照)
  • EditLog:操作事务日志(增量修改记录)

‌高可用模式(HA)‌:

  • Active NameNode:处理所有客户端请求
  • Standby NameNode:实时同步EditLog,准备故障切换

2. DataNode(DN) - ‌躯干角色‌

‌核心职责‌:

  • ‌实际数据存储‌:存储HDFS文件的数据块
  • ‌数据块管理‌:
    • 本地文件系统读写操作
    • 数据块创建、删除、复制
  • ‌心跳机制‌:
    • 每3秒向NameNode发送心跳(默认)
    • 报告存储的数据块列表
  • ‌数据流水线传输‌:
    • 实现客户端到DN的数据管道传输
    • 支持多副本并行写入

‌磁盘存储结构‌:


textCopy Code

/blocks ├── BP-193548651-192.168.1.10-16123456789 │ ├── current │ │ ├── finalized │ │ │ ├── subdir0 │ │ │ │ ├── blk_1073741825 │ │ │ │ ├── blk_1073741825_1001.meta │ │ │ └── subdir1 │ │ └── rbw │ └── scanner.cursor

3. Secondary NameNode(SNN) - ‌助手角色‌

注意:不是NameNode的热备

‌核心职责‌:

  • ‌定期Checkpoint‌:
    • 定期合并FsImage和EditLog
    • 防止EditLog过大导致启动过慢
  • ‌紧急恢复‌:提供元数据恢复点
  • ‌监控点‌:定期保存命名空间检查点

‌工作流程‌:


mermaidCopy Code

sequenceDiagram SNN->>NN: 请求执行Checkpoint NN->>SNN: 滚动创建新EditLog SNN->>NN: 下载FsImage和EditLog SNN->>SNN: 内存合并元数据 SNN->>NN: 推送新FsImage NN->>SNN: 确认更新完成

4. JournalNode(JN) - ‌高可用基石‌

‌核心职责‌:

  • ‌共享存储服务‌:管理EditLog的共享存储
  • ‌保证一致性‌:基于Paxos协议实现高可用
  • ‌仲裁服务‌:支持奇数节点部署(通常3或5)

‌数据流‌:


textCopy Code

Active NN --EditLog推送--> JN1 --> JN2 --> JN3 Standby NN --EditLog拉取--> JN1 --> JN2 --> JN3

5. ZKFailoverController(ZKFC) - ‌故障转移控制器‌

‌核心职责‌:

  • ‌健康监测‌:监控NameNode进程状态
  • ‌ZooKeeper管理‌:
    • 在ZK中创建临时节点
    • 维护NameNode的活动状态
  • ‌自动故障转移‌:
    • 检测Active NN故障
    • 触发Standby NN切换

三、读写流程中的角色协作

文件写入流程


mermaidCopy Code

sequenceDiagram Client->>NN: 创建文件请求 NN->>Client: 返回分配的数据节点列表 Client->>DN1: 建立数据管道 DN1->>DN2: 转发数据 DN2->>DN3: 转发数据 DN3->>DN2: ACK确认 DN2->>DN1: ACK确认 DN1->>Client: ACK确认 Client->>NN: 写入完成报告

文件读取流程


mermaidCopy Code

sequenceDiagram Client->>NN: 获取文件块位置 NN->>Client: 返回包含块位置的DN列表 Client->>DN1: 读取数据块 alt 块损坏 DN1->>Client: 读取失败 Client->>DN2: 尝试副本读取 end DN2->>Client: 返回数据块

四、生产环境配置建议

硬件配置

角色CPU内存磁盘网络
NameNode8核+64GB+RAID1 SSD10GbE
DataNode4核+32GB+JBOD 12x HDD10GbE
JournalNode4核16GBSSD (单独分区)10GbE

关键配置项

‌hdfs-site.xml‌


xmlCopy Code

<!-- NameNode HA配置 --> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <!-- JournalNodes配置 --> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://jn1:8485;jn2:8485;jn3:8485/mycluster</value> </property> <!-- 数据块大小 --> <property> <name>dfs.blocksize</name> <value>268435456</value> <!-- 256MB --> </property>

五、故障诊断技巧

NameNode问题排查


bashCopy Code

# 检查NameNode状态 hdfs haadmin -getServiceState nn1 # 分析FsImage hdfs oiv -p XML -i fsimage_0000000000000000000 -o fsimage.xml # 检查EditLog hdfs oev -p XML -i edits_0000000000000000001-0000000000000000002 -o edits.xml

DataNode问题排查


bashCopy Code

# 检查DataNode磁盘 hdfs dfsadmin -report # 查看数据块完整性 hdfs fsck / -files -blocks -locations # 手动恢复损坏块 hdfs debug recoverLease -path <file> -retries 5

六、演进趋势

  1. ‌Observer NameNode‌:扩展读能力(HDFS-3.3+)
  2. ‌分层存储‌:热/温/冷数据自动迁移
  3. ‌EC纠删码‌:替代3副本策略,节省50%存储
  4. ‌Router-Based Federation‌:统一命名空间多集群

随着云原生趋势,HDFS正在向容器化部署和Kubernetes集成方向演进,但核心角色架构仍然保持稳定。

hdfs面试题目大全 1、Hadoop 特性优点? (1)扩容能力 (2)成本低 (3)高效率 (4)可靠性 2、Hadoop的核心组件是哪些? (1)HDFS (2)MapReduce (3)Yarn 3、Hadoop目前有几个版本? 目前hadoop有1.x、2.x、3.x。三个版本 4、HDFS分布式文件系统集群的角色主要有? NameNode、DataNode、SecondaryNameNode 5、Yarn资... 阅读详情

相关推荐

HDFS的两大核心

HDFS的两大核心包括写数据和读数据,这是HDFS的一个重点,下面笔者就讲解一下两大核心的过程。同时,笔者也会讲解一下元数据的合并过程。 写数据 1.客户端向NameNode发送文件上传请求; 2.NameNode进行一系列的检查:权限、文件的父目录是否已经存在。检查通过之后,允许上传; 3.允许客户端上传; 4.客户端发送真正的文件上传请求,请求包含一个重要的信息:文件的长度、大小; 5.Nam...

Master chy 1705

HDFS基础

HDFS基础

weixin_50722238的博客 592

2024最新HDFS核心面试知识点梳理

hdfs核心知识点汇总

haoyueONEX的博客 1169

hadoop之hdfs的角色以及读写流程

hadoop之hdfs的角色以及读写流程 1. hdfs简介  hdfs集群分为两大角色:namenode、datanode 1.1、 namenode工作职责: 1.1.1、 记录元数据:       文件的路径       文件的副本数量       文件的切块大小       文件的块信息       文件块的位置信息 1.1.2、 响应客户端请求 1.1.3、 平衡datanode上的文件...

风逍遥-ygq 1270

大数据面试题(一):HDFS核心高频面试题

HA(High Available), 高可用,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,分为 活动节点 ( Active )及 备用节点 ( Standby) )。用于实现业务的不中断或短暂中断NN 是 HDFS 集群的单点故障点.在 HA 具体实现方法不同情况下,HA 框架的流程是一致的, 不一致的就是如何存储、管理、同步 edits 编辑日志文件。

Lansonli(蓝深李)的博客 2344

Unity插件-Mirror使用方法(一)Mirror介绍

Unity Mirror 是一个专为 Unity 引擎设计的开源、社区驱动的网络库,主要用于简化多人联机游戏的开发。它最初是为了替代 Unity 原生的 UNet 系统(已被官方弃用)而创建的,因其轻量、灵活和高效的特点,成为 Unity 开发者构建多人游戏的热门选择。

qq_44501691的博客 4097

7 HDFS工作流程与机制

1 HDFS集群角色与职责 2 HDFS写数据流程(上传文件) 3 HDFS读数据流程(下载文件) 4 总结 主角色:namenode NameNode是Hadoop分布式文件系统的核心,架构中的主角色。  NameNode维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访问权限等信息。  基于此,NameNode成为了访问HDFS的唯一入口。 NameNode内部通过内存和磁盘文件两种方式管理元数据。  其中磁盘上的元数据文件包括Fsi

THE ORDER 739

中兴B860AV2.1-A刷机避坑指南:晶晨免拆神器+安卓7.1.2固件实测

本文提供中兴B860AV2.1-A机顶盒的详细刷机教程,重点介绍使用晶晨免拆神器配合安卓7.1.2线刷固件包的实操步骤。内容涵盖刷机前的硬件确认、工具准备、软件设置、烧录全过程监控及常见问题解决,旨在帮助用户安全、高效地完成刷机,规避变砖风险,释放设备潜力。

pytorch8learner的博客 746

HDFS的角色与工作原理

HDFS的角色 一个Master: NameNode NameNode负责存储元数据,以树形结构储存目录,但是block块位置不会长久保存,每次开机需要重新获取block块位置(由DataNode汇报给NameNode) 多个Slave: DataNode 负责储存数据,一个大文件会被切分成多个block块,每块128M,并且会有三份副本,保证数据安全 SecondaryNameNode: 负责辅助NameNode处理元数据

riwanba的博客 592

在URP中正确写入Sprite深度以使用DOF

我准备在文字冒险中加入景深的效果,但是因为unity内置shader的缘故,sprite是不会写入深度的,而如果要使用PostProcessing的DOF效果的话,是必须要将半透明物体的深度正确写入Depth Buffer的,这篇消耗了我大量精力的文章就是要介绍正确写入的方法。 其实,如果只是要在2D游戏中实现类似于景深的效果,不写入深度其实也是可以的,我找到的有两种方案:一种是实时对Sprite进行模糊计算;二是直接使用离线预模糊的图片,根据强度进行混合。 离线预模糊 虽然这两种方法都可以比较简

FREEstriker的博客 2729

东方财富网股票API逆向分析:手把手教你破解动态参数(2024最新版)

本文详细解析了2024年东方财富网股票API的动态参数生成机制,包括回调函数、身份验证和时效控制参数的逆向工程方法。通过实战代码演示,帮助开发者破解动态参数,实现高效稳定的股票数据爬取,适用于金融数据分析和量化交易场景。

weixin_29091105的博客 1024

【HDFS入门】HDFS核心组件DataNode详解:角色职责、存储机制与健康管理

DataNode是HDFS的数据存储工作节点,负责实际的数据块存储与管理。它在HDFS架构中扮演着"体力劳动者"的角色,与NameNode的"管理者"角色形成鲜明对比。DataNode作为HDFS的数据存储基石,其稳定运行直接关系到整个HDFS集群的可靠性。理解DataNode的工作机制,对于优化存储性能、排查数据问题具有重要意义。

IT成长日记的博客 1606

Redhawk-SC输入件配置中的5个常见错误及解决方法

本文针对Redhawk-SC功耗与可靠性签核工具,深入剖析了输入件配置中工艺文件错配、DEF文件路径、时序文件格式、电源网络模型及宏模型处理这5个最常见且棘手的错误。文章提供了资深工程师验证过的实战解决方案与检查清单,旨在帮助用户规避风险,提升配置效率与分析准确性,确保芯片签核流程的顺利进行。

earth的博客 233

【HDFS入门】HDFS核心组件NameNode角色职责、运行原理与机制详解

NameNode是Hadoop分布式文件系统(HDFS)的"大脑",负责管理整个文件系统的命名空间和元数据。作为HDFS的主控节点,它的稳定运行直接关系到整个集群的可用性。

IT成长日记的博客 1791

YOLO骨干网络改进-第1篇:深度解析YOLOv8的C2f模块原理与实现

首先,需要将自定义的C2f模块注册到Ultralytics的模块字典中。# 注册自定义模块"""自定义的C2f模块。"""# 自定义YOLOv8s配置文件:yolov8s_custom.yamlscales:# Backbonebackbone:# Headhead:# 加载自定义模型# 训练模型imgsz=640,batch=16,device=0,workers=8,设计理念:C2f模块是C3模块的演进,通过增加梯度分支来丰富梯度流,提升特征表示能力。结构原理。

2201_76125393的博客 109

【项目实战】DevOps制品管理之JFrog Artifactory介绍

JFrog Artifactory是一款领先的二进制软件制品仓库管理工具,由JFrog公司开发。

奶爸的编程之路,也就一周冷个三天 1352

【HDFS入门】HDFS核心组件Secondary NameNode角色职责与运行机制解析

Secondary NameNode作为传统HDFS架构的重要组件,在保证元数据可靠性方面发挥了关键作用。理解其工作原理不仅有助于维护Hadoop 1.x集群,更能深刻理解现代HDFS HA架构的设计哲学。而对于遗留系统,合理配置SNN仍是保障数据安全的重要手段。经常误以为它是NameNode的热备份,但实际上它的核心角色是。Secondary NameNode(SNN)是HDFS架构中。与Active NN共享JournalNodes。小于 checkpoint.period。合并期间可能丢失部分操作。

IT成长日记的博客 859

PPT里文字太多如何排版-一口气教你7种布局瞬间让PPT高大上起来

PPT里全是文字且很拥挤怎么办?本篇教你使用7种不同的排版让你的PPT瞬间变得高大上起来。

打造全国最全的AI Agent开发知识领域的博客 5021

【HDFS入门】HDFS核心组件Balancer:角色职责、运行原理与机制详解

HDFS Balancer作为集群维护的重要工具,通过智能的数据迁移策略确保存储资源的合理利用。理解其工作原理和调优方法,可以帮助管理员构建更稳定高效的Hadoop集群。建议定期(如每月)运行Balancer,并结合监控指标评估均衡效果。HDFS Balancer是Hadoop分布式文件系统中的关键维护工具,主要职责是均衡集群中各DataNode的磁盘使用率,确保数据均匀分布。

IT成长日记的博客 1341

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDFS 核心架构详解:NameNode、DataNode、SecondaryNameNode 角色分工

HDFS 核心架构详解:NameNode、DataNode、SecondaryNameNode 角色分工

菜鸟小码的博客 1181

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

hadoop的三大核心组件之HDFS和YARN

Hadoop的三大核心组件之HDFS和YARNHadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。(1)HDFS集群:负责海量数据的存储,集群中的角色主要有 NameNode / DataNode/SecondaryNameNode。(2)YARN集群:负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeMan...

wyfly69的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HDFS架构和原理

HDFS版本Hdfs的版本基本是对应hadooop的版本,了解hadoop的版本历程简介也就是了解HDFS的版本历程,简而言之,hadoop的大版本历程如下:Hadoop1.xHad...

lzy_zhi_yuan的博客 473

Hadoop、HDFS

Hadoop介绍和HDFS详解

太白_猿的博客 3170

Hadoop核心组成部分、HDFS存储模型和架构模型总结

Hadoop核心组成部分 (1)Hadoop Common:用来支撑其他模块的公共工具包 (2)HDFS: 一种分布式文件系统,提供对应用程序数据的高吞吐量访问。 (3)Hadoop Yarn:作业调度和集群资源管理的框架。 (4)Hadoop MapReduce:基于YARN的系统,用于并行处理大型数据集。 HDFS存储模型 存储模型:字节(一个文件就是一个字节数组)  ①block块产生:文件...

SlimShadyKe的博客 2059
上一篇: IK分词器
下一篇: SpringBoot启动优化
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值