当前位置: 首页 > news >正文

【HDFS入门】Hadoop 2.0+ HDFS核心架构深度解析:高可用设计揭秘

目录

1 HDFS核心架构概述

2 高可用设计背景

3HDFS核心组件

3.1 Active与Standby NameNode

3.2 JournalNode

3.3 ZKFailoverController(ZKFC)

3.4 DataNode

4 高可用设计的工作流程

写入阶段:

元数据同步:

健康监测:

故障转移:

5 高可用设计的优势

6 总结


1 HDFS核心架构概述

Hadoop 2.0及以后版本的HDFS(Hadoop Distributed File System)采用了主/从(Master/Slave)架构,主要由NameNode、DataNode以及一系列辅助组件构成。HDFS的设计目标是实现高吞吐量、高容错性的数据存储,适用于大规模数据集的分布式处理。

2 高可用设计背景

在Hadoop 1.x版本中,NameNode是单点故障,一旦NameNode出现故障,整个HDFS集群将不可用。为了解决这个问题,Hadoop 2.0引入了NameNode的高可用性(HA)机制,确保在NameNode出现故障时,系统能够迅速恢复,保证数据的持续可用性。

3HDFS核心组件

3.1 Active与Standby NameNode

  • 功能:
    • Active NameNode:处理所有客户端的读写请求,管理文件系统的命名空间
    • Standby NameNode:作为热备份,与Active NameNode保持同步,随时准备接管
  • 高可用性实现:
    • 通过配置两个NameNode(一个Active,一个Standby),确保在Active NameNode出现故障时,Standby NameNode能够迅速接管
    • 使用JournalNode实现Active和Standby NameNode之间的元数据同步

3.2 JournalNode

  • 功能:
    • 在NameNode的高可用性配置中,JournalNode用于实现NameNode之间的编辑日志共享
    • Active和Standby NameNode都通过JournalNode来记录编辑日志,确保两者之间的元数据保持一致
  • 工作原理:
    • Active NameNode将编辑日志写入JournalNode集群
    • Standby NameNode从JournalNode集群读取编辑日志,并在本地应用这些日志,以保持与Active NameNode的元数据同步

3.3 ZKFailoverController(ZKFC)

  • 功能:
    • 基于Zookeeper实现NameNode的故障转移控制
    • 监控NameNode的健康状态,并在Active NameNode出现故障时触发故障转移
  • 工作原理:
    • ZKFC在Zookeeper中创建一个会话,并注册一个临时的Znode来表示Active NameNode的状态
    • 当Active NameNode出现故障时,Zookeeper会检测到会话超时,并通知Standby NameNode的ZKFC进行故障转移
    • Standby NameNode的ZKFC在确认Active NameNode确实故障后,将Standby NameNode切换为Active状态,并接管所有客户端请求

3.4 DataNode

  • 功能:
    • 存储实际的数据块,根据NameNode的指示进行数据存储和检索
    • 定期向NameNode发送心跳信号和块报告,以确认其状态和存储的数据块信息
  • 在高可用设计中的角色:
    • DataNode并不直接参与NameNode的故障转移过程,但它们的状态和存储的数据块对于HDFS的整体可用性至关重要
    • 在NameNode故障转移后,新的Active NameNode需要能够快速获取DataNode的状态信息,以确保数据的正确性和一致性

4 高可用设计的工作流程

写入阶段:
客户端与Active NN交互:
  • 在HDFS的写入阶段,客户端只与Active NameNode(NN)进行交互。Active NameNode负责处理所有客户端的读写请求,并管理文件系统的命名空间
EditLog确认机制:
  • 当客户端发起写请求时,Active NameNode会记录相关的操作到EditLog中。为了确保EditLog的可靠性,HDFS采用了多数JournalNodes确认的机制。例如在3个JournalNodes的集群中,至少需要2个JournalNodes成功写入EditLog,才能认为该操作被成功记录
数据直接写入DN:
  • 客户端在获得Active NameNode的写入许可后,会直接将数据写入DataNode(DN),这种设计避免了NameNode成为数据写入的瓶颈,提高了系统的整体写入性能
元数据同步:
Standby NN实时追踪EditLog:
  • Standby NameNode会实时追踪Active NameNode的EditLog,以确保两者之间的元数据保持一致;当Active NameNode记录新的EditLog时,Standby NameNode会从JournalNodes中读取并应用这些日志
定期执行检查点合并:
  • 为了减少NameNode重启时的恢复时间,Standby NameNode会定期执行检查点合并操作。它将EditLog中的操作应用到FsImage(命名空间镜像)中,生成新的FsImage文件;在NameNode重启时,可以直接加载最新的FsImage文件,而无需重放大量的EditLog
健康监测:
DataNode同时向主备NN发送块报告:
  • DataNode会同时向Active和Standby NameNode发送块报告,以告知它们自己存储的数据块信息;即使Active NameNode出现故障,Standby NameNode也能迅速获取到最新的数据块信息
心跳超时触发故障检测:
  • NameNode会定期向DataNode发送心跳信号,以检测DataNode的健康状态,如果某个DataNode的心跳信号超时,NameNode会认为该DataNode出现故障,并采取相应的措施(如复制数据块到其他DataNode),同样地ZKFailoverController也会通过Zookeeper来监控Active NameNode的健康状态,一旦检测到故障,就会触发故障转移过程
故障转移:
ZKFC通过ZooKeeper实现分布式协调:
  • ZKFailoverController(ZKFC)是基于Zookeeper的故障转移控制器,它负责监控NameNode的健康状态,并在Active NameNode出现故障时触发故障转移过程;ZKFC通过Zookeeper来实现分布式协调,确保故障转移过程的可靠性和一致性
典型切换时间30秒内:
  • 在Hadoop 2.0及以后版本中,HDFS的故障转移时间被大大缩短,典型情况下,从Active NameNode出现故障到Standby NameNode接管所有客户端请求的时间可以在30秒内完成(具体时间取决于session.timeout配置),这种快速的故障转移能力确保了HDFS的高可用性和数据可靠性

5 高可用设计的优势

  • 提高系统可用性:通过配置Active和Standby NameNode,确保在NameNode出现故障时系统能够迅速恢复
  • 增强数据可靠性:DataNode的数据冗余和容错机制确保即使某个DataNode出现故障,也不会影响整个文件系统的正常运行
  • 简化运维管理:高可用设计减少了单点故障的风险,降低了运维管理的复杂度

6 总结

Hadoop 2.0及以后版本的HDFS通过引入NameNode的高可用性机制,显著提高了系统的可用性和数据可靠性。Active与Standby NameNode、JournalNode、ZKFailoverController以及DataNode等核心组件共同构成了HDFS的高可用架构,确保了HDFS在节点故障、网络分区等异常情况下仍能保持数据的可靠性和系统的可用性。这一设计使得HDFS成为大规模数据存储和处理的首选平台之一。

相关文章:

  • C. Good Subarrays
  • 操作系统基础:07 我们的任务
  • MySQL-锁
  • leetcode 3508 设计路由器 模拟 深拷贝 二分 bound
  • (即插即用模块-特征处理部分) 三十二、(TGRS 2024) MDAF 多尺度双表示对齐过滤器
  • 深入解析TCP拥塞控制机制:从原理到现代算法优化
  • 如何在Agent中设置Memory
  • 【数学建模】佳点集(Good Point Set)在智能优化算法中的应用与实现
  • ChatGPT-如何让AI写作不那么生硬!
  • 学习笔记九——Rust所有权机制
  • 探索 MCP 和 A2A 协议: 本质上新协议都基于 HTTP的
  • 【Spring底层分析】Spring IoC
  • RocketMQ 安装时启动一闪而过 start mqnamesrv.cmd
  • 插值算法 - 最近邻插值实现
  • 用python写一个简单的射击游戏
  • skynet.socket 完整通信流程
  • Mysql8配置文件
  • 【贪心之摆动序列】
  • 三、Virtual Device Manager
  • CST1019.基于Spring Boot+Vue智能洗车管理系统
  • 韦尔股份拟更名豪威集团:更全面体现公司产业布局,准确反映未来战略发展方向
  • 国家统计局:中美大幅降低关税有利于双方贸易增长,也有利于世界经济复苏
  • “大国重器”、新型反隐身雷达……世界雷达展全面展示尖端装备
  • 河南发布高温橙警:郑州、洛阳等地最高气温将达40℃以上
  • 莫高义在第四届中国新闻发言人论坛开幕式上的致辞
  • 烤肉店从泔水桶内捞出肉串再烤?西安未央区市监局:停业整顿