【Hadoop】HDFS Router-based Federation:解决 NameNode 扩展性问题的联邦方案

文章目录

    • 一、核心架构:Router + State Store 的联邦层
      • 架构组件
      • 工作流程
    • 二、Router:联邦接口和状态监控
      • 联邦接口(Federated Interface)
      • NameNode 心跳(NameNode Heartbeat)
      • Router 心跳
    • 三、高可用和容错:多层次的故障处理
      • 1. 联邦接口高可用
      • 2. State Store 不可用
      • 3. 过期的 NameNode
    • 四、Router 接口:多协议支持
      • 支持的接口
      • 不支持的操作
    • 五、Quota 管理:全局配额控制
      • 实现机制
    • 六、State Store:可插拔的状态存储
      • 存储的信息
      • 后端可插拔

NameNode 因元数据开销、DataNode 心跳管理和 HDFS RPC 请求数量限制,存在扩展性瓶颈。传统 HDFS Federation 方案需要用户手动管理多个子集群,Router-based Federation(RBF)通过引入 Router 和 State Store 组件,实现了透明的联邦访问和自动化的子集群管理。

核心要点

  1. Router 提供统一的 NameNode 接口,将请求转发到正确的子集群
  2. State Store 维护挂载表和子集群状态信息
  3. 支持高可用、容错和自动故障转移
  4. 客户端无需感知多个子集群的存在

一、核心架构:Router + State Store 的联邦层

Router-based Federation 通过在 HDFS Federation 之上添加一个软件层,实现透明的联邦访问和自动化的子集群管理。

架构组件

联邦层由两个核心组件组成:

1. Router(路由器)

  • 提供与 NameNode 相同的接口,对客户端透明
  • 根据 State Store 的信息将请求转发到正确的子集群
  • 无状态设计,支持负载均衡和高可用

2. State Store(状态存储)

  • 维护远程挂载表(Mount Table):文件路径与子集群的映射关系
  • 维护子集群状态信息(Membership):存储容量、节点数量、HA 状态等
  • 后端可插拔,支持多种存储实现

工作流程

最简单的配置是在每个 NameNode 机器上部署一个 Router:

  1. Router 监控本地 NameNode:定期检查 NameNode 状态,向 State Store 发送心跳
  2. 客户端请求:客户端通过任意 Router 访问联邦文件系统中的文件
  3. 路由查找:Router 查询 State Store 的 Mount Table,确定文件所在的子集群
  4. NameNode 定位:Router 查询 Membership 表,找到负责该子集群的 NameNode
  5. 请求代理:Router 将请求转发给正确的 NameNode
  6. 直接访问:客户端直接访问 DataNode 获取数据

这种架构与 YARN Federation 相同,提供了统一的联邦视图。


二、Router:联邦接口和状态监控

Router 有两个核心角色:对外提供统一的联邦接口,对内监控 NameNode 状态。

联邦接口(Federated Interface)

Router 接收客户端请求,查询 State Store 找到正确的子集群,然后将请求转发给该子集群的 Active NameNode。

关键特性

  • 无状态设计:Router 是无状态的,可以部署在负载均衡器后面
  • 健康检查:提供/isActive端点作为健康探针
  • 性能优化:缓存远程挂载表条目和子集群状态,减少 State Store 查询
  • 状态同步:每个 Router 向 State Store 发送心跳,确保状态变更传播到所有 Router

缓存机制

  • Router 与 State Store 的通信被缓存(带过期时间)
  • 提高系统性能,减少 State Store 的访问压力

NameNode 心跳(NameNode Heartbeat)

Router 定期检查 NameNode 的状态(通常在同一台服务器上),向 State Store 报告:

  • 高可用(HA)状态
  • 负载和空间状态

注意事项

  • 这是可选角色,Router 可以独立于任何子集群
  • 对于 NameNode HA,Router 使用 State Store 中的 HA 状态信息,将请求转发到最可能处于 Active 状态的 NameNode
  • 此服务可以嵌入到 NameNode 本身,简化运维

Router 心跳

Router 周期性地向 State Store 发送心跳,报告自身状态。


三、高可用和容错:多层次的故障处理

Router 在多个层次上处理故障,确保系统的可用性和容错性。

1. 联邦接口高可用

  • 无状态设计:Router 是无状态的,元数据操作在 NameNode 层面是原子的
  • 故障转移:如果某个 Router 不可用,其他 Router 可以接管
  • 客户端配置:客户端可以配置所有 Router 作为端点,使用ConfiguredFailoverProviderRequestHedgingProxyProvider实现 HA

2. State Store 不可用

  • 安全模式:如果 Router 无法联系 State Store,将进入安全模式,拒绝处理请求
  • 客户端行为:客户端将处于安全模式的 Router 视为 Standby NameNode,尝试其他 Router
  • 手动管理:提供手动管理 Router 安全模式的方式

3. 过期的 NameNode

  • 过期检测:如果 NameNode 心跳在 State Store 中连续多个心跳间隔未记录,监控 Router 将记录 NameNode 已过期
  • 访问限制:过期的 NameNode 不会被任何 Router 访问
  • 自动恢复:如果后续收到更新的心跳,监控 Router 会将 NameNode 从过期状态恢复

四、Router 接口:多协议支持

Router 暴露多个接口,支持不同的访问方式和运维需求。

支持的接口

  • RPC:实现客户端与 HDFS 交互最常见的接口
  • Admin:管理员可以通过 RPC 添加或移除挂载表
  • Web UI:提供联邦状态的可视化界面
  • WebHDFS:提供 HDFS REST 接口(WebHDFS)
  • JMX:通过 JMX 暴露指标,Web UI 使用它来获取集群状态

不支持的操作

以下操作会抛出异常:

  • 在不同 namespace 之间重命名、复制文件/文件夹
  • 写入正在重新平衡的文件/文件夹

五、Quota 管理:全局配额控制

在挂载表级别,联邦支持全局 quota(配额)控制。

实现机制

  • 性能优化:Router 缓存 quota 使用情况,定时更新
  • 配额检查:当调用 RouterRPCServer 中的写 RPC 请求时,会进行 quota 使用情况的检查
  • 全局视图:提供跨子集群的全局配额管理

详细说明参考:HDFS Quotas Guide


六、State Store:可插拔的状态存储

State Store 维护子集群状态和挂载表信息,后端可插拔。

存储的信息

1. Membership(成员信息)

  • 编码 NameNode 的状态信息
  • 包括:子集群的存储容量、节点数量等
  • Router 定期获取一个或多个 NameNode 的信息
  • 数据仲裁:多个 Router 可以监控同一个 NameNode,Router 会从数据层面仲裁,淘汰超过阈值的心跳条目(例如,10 个 Router 的心跳周期)

2. Mount Table(挂载表)

  • 包含文件夹和子集群之间的映射
  • 类似于 ViewFS 的映射表
  • 指定联邦文件夹、目标子集群和该文件夹中的路径

后端可插拔

State Store 的后端是可插拔的,支持多种存储实现,可以根据实际需求选择合适的后端。

参考文档

  • HDFS Router Federation 官方文档
  • 腾讯云 HDFS Router-based Federation 原理
  • ViewHDFS 客户端配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1185430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

救命神器10个AI论文工具,MBA毕业论文轻松搞定!

救命神器10个AI论文工具,MBA毕业论文轻松搞定! AI 工具,让论文写作不再“难” 在当前的学术环境中,MBA 学生面临着越来越高的论文写作要求。无论是选题、大纲搭建,还是内容撰写与降重,每一个环节都可能成为…

一篇文章带你轻松掌握ARP欺骗的原理以及运用

ARP欺骗原理以及实现 什么是ARP协议? 简单来说就是在通信协议中,数据的从一台设备向另一台设备转发时需要知道目标机的明确地址(就好比买的快递需要写家里的地址一样),在网络设备中除了通过网络层的IP协议去获得IP地…

百年匠心,科技赋能:神象人参粉——滋补养生的品质之选 - 行业调研院

在快节奏的现代生活中,我们常常面临体质虚弱、精力透支、免疫力下降的困扰。无论是长期伏案的脑力劳动者,还是术后恢复期的人群,都渴望找到一款安全、高效、便捷的滋补品。而上海上药神象健康药业有限公司旗下的神象…

第一次渗透

第一次接触渗透感觉十分的不熟悉,我对前面的课程有很多都没有学到位,很多都听不懂,最初几节课的环境搭建感觉听的云里雾里的。之前授课老师和这门课的老师讲课方式不一样,所以还没有适应。我不知道环境搭建需要那些东西&#xff0…

Vue3 响应式系统——computed 和 watch

学过上一节 ref、reactive、effect 后,接下来我们探究响应式变量的使用——computed 和 watch 。一、computed 和 watch 概述 所有响应式逻辑都会依赖 effect 执行,computed / watch / render 本质都是 effect。effe…

CC++核心介绍

C 核心介绍C 是由 Bjarne Stroustrup 在 1980 年代基于 C 语言扩展而来的编程语言,核心特点是兼容 C 语言且新增了面向对象编程(OOP)特性,同时保留了对底层硬件的直接操控能力,因此被称为 “混合范式语言”—— 既支持…

历年CSP-J初赛真题解析 | 2014年CSP-J初赛

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

HarmonyOS 中如何避免线程阻塞?从原理到实战的完整解析

摘要 随着 HarmonyOS / OpenHarmony 在手机、平板、智慧屏、车机等多设备上的落地,应用的复杂度正在明显提升。页面不再只是简单展示,而是伴随着网络请求、数据计算、设备协同等大量逻辑。如果这些逻辑处理不当,很容易出现页面卡顿、点击无响…

中华老字号的现代传承:神象人参粉,以科技赋能千年滋补智慧 - 行业调研院

在快节奏的现代生活中,人们对健康的追求从未停歇,尤其渴望一种既能承袭传统智慧、又经得起科学验证的高品质滋补品。今天,我们为您深入解读的,正是这样一款融合了百年信誉与现代科技的典范之作——神象人参粉。它不…

4 个值得关注的开源业务数据管理工具

从业务系统视角梳理数据管理的核心问题,对比分析 NocoBase、Directus、Budibase 与 Appsmith 在建模、权限、流程与扩展性上的差异与适用场景。原文链接:https://www.nocobase.com/cn/blog/4-open-source-data-manag…

嵌入式系统设计师软考个人笔记<2>

一、嵌入式硬件核心组件1. 处理器与可编程逻辑器件处理器:MCU(微控制器):集成 CPU 存储器 外设(如 STM32、51 单片机),是嵌入式系统的核心;MPU(微处理器)&a…

【投票邀请】助力我冲击CSDN 2025博客之星TOP138,每一票都藏着你的偏爱~

【投票邀请】助力我冲击CSDN 2025博客之星TOP138,每一票都藏着你的偏爱~ 亲爱的小伙伴们、长期陪伴我的博粉家人们: 大家好呀~ 今天怀着满满的诚意和一点点小紧张,来向大家发出一个特别的邀请!我正在参加…

c+++核心介绍

C 核心介绍C 是由 Bjarne Stroustrup 在 1980 年代基于 C 语言扩展而来的编程语言,核心特点是兼容 C 语言且新增了面向对象编程(OOP)特性,同时保留了对底层硬件的直接操控能力,因此被称为 “混合范式语言”—— 既支持…

vLLM 大模型性能测试

目录短文本测试中等长度测试长文本测试 短文本测试 vllm bench serve --model /data/models/Qwen1.5-14B-Chat-AWQ --backend vllm --base-url http://localhost:8000 --endpoint /v1/completions --dataset-name…

C++2026核心介绍

C 核心介绍C 是由 Bjarne Stroustrup 在 1980 年代基于 C 语言扩展而来的编程语言,核心特点是兼容 C 语言且新增了面向对象编程(OOP)特性,同时保留了对底层硬件的直接操控能力,因此被称为 “混合范式语言”—— 既支持…

《Python模糊测试普及困局:隐性壁垒与破局路径深度解析》

Python生态的生命力源于其极致的灵活性与丰富的库资源,这种特性让开发者能快速搭建各类应用、适配多元场景,却也为模糊测试的普及埋下了深层矛盾。模糊测试的核心价值在于通过非预设输入的探索性验证,捕捉常规测试难以触及的隐性风险&#xf…

机器学习实战:多项式回归建模——从模拟数据到模型评估

博主正在参加CSDN博客之星评选,需要您的支持! 投票链接:https://www.csdn.net/blogstar2025/detail/056 题目:多项式回归建模练习 1. 训练资料生成 给定函数:y sin(x) 取样:在给定的 x 值(x…

英特尔AI双赛走出的万名开发者,正在弥合AI人才缺口

作者:金旺近日,据央视新闻报道,我国人工智能企业数量已突破6200家,2025年我国人工智能核心产业规模已经突破1万亿元,人工智能大模型正在融入千行百业。与此同时,另一个来自人力资源社会保障部的统计数据显示…

【网安区块链项目参考】基于区块链的安全日志防篡改系统的设计与实现

整个系统资料包含:全套源码注释开发文档部署指导说明,需要的话可以私信博主获取,伸手党勿扰基于区块链的安全日志防篡改系统的设计与实现摘要随着信息系统规模的不断扩大,系统安全日志在网络安全审计、入侵检测与事后取证中发挥着…

【计算机毕业设计案例】基于django定制化ERP系统APP企业客户设备进销存系统小程序(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…