2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Pinterest 利用内部编排框架 Hadoop Control Center 实现 Hadoop 集群的自动扩展与迁移

作者:Claudio Masolo

  • 2025-08-05
    北京
  • 本文字数:1508 字

    阅读完需:约 5 分钟

大小:762.16K时长:04:20
Pinterest利用内部编排框架Hadoop Control Center实现Hadoop集群的自动扩展与迁移

最近,Pinterest公开了其内部编排框架 Hadoop Control Center(HCC)。他们使用这个框架来自动化其大规模 Hadoop 集群的扩展和迁移,解决了在亚马逊云科技云上管理数十个YARN集群中的数千个节点时面临的运营复杂性和限制。

 

历史上,Pinterest 为其 Hadoop 基础设施维护固定大小的自动扩展组(ASG)。这种配置虽然安全,但实际上把自动扩展给禁用了。手动调整集群大小,特别是缩减,需要通过 Terraform 进行,而且需要大量的人工干预。这个过程会涉及安全地排空和退役节点等复杂的操作,同时还要避免对使用MapReduceSparkFlink的批处理工作负载造成干扰。整个过程既耗时又容易出错,常常导致基础设施重复和资源浪费。

 

HCC 的引入将这种手动工作流转变为一个完全自动化的系统,可以实时管理 Hadoop 集群大小调整和节点迁移。现在,操作员可以通过一个统一的命令行界面请求进行扩展操作。在后台,HCC 与亚马逊云科技的服务和 Hadoop 组件协调交互,确保节点安全退役、数据完整性和服务连续性。

 

HCC 的核心是分布在 Pinterest 虚拟私有云(VPC)中的一个 manager-worker 架构。每个 VPC 运行一个管理节点,它缓存集群状态并将操作委托给工作节点。这些工作节点与一个名为 Hadoop 管理器类(HMC)的自定义组件交互,该组件协调节点的逐步退役和扩展。HMC 通过 JMX 监控关键集群指标,更新配置文件,调用亚马逊云科技的 API,并调度内部线程以处理排空、终止和清理操作。


HCC 逻辑架构

 

HCC 的一个关键特性是能够在原地升级期间安全地迁移节点。Pinterest 工程师不是部署使用新配置的并行绿色集群,而是使用更新后的实例类型启动一个 ASG 或是启动一个AMI,并允许 HCC 将这些新节点整合到现有的集群中。然后,HCC 开始从旧的 ASG 中排空数据和工作负载,监控 Shuffle 和 HDFS 复制完成,并以受控的方式移除退役实例。这种方法可以最小化成本,避免基础设施重复,并且不需要每次迁移时重新配置容量或 IP 空间。

 

此外,该系统在实例级别管理 ASG 缩减保护,确保亚马逊云科技云不会随机终止尚未准备好移除的 Hadoop 节点。成功退役后,HCC 会将节点从集群中移除,并更新相关的 Terraform 变量,以便保持配置一致性,并避免在将来的基础设施变更中出现漂移。

 

虽然 HCC 显著提高了运营效率,但 Pinterest 还在设法扩展其能力。他们计划添加自修复功能,用于处理亚马逊云科技云检测到的不健康节点,启用基于操作系统年龄或 AMI 版本的生命周期轮换,并整合亚马逊云科技的事件触发器以实现更智能的节点管理。这些增强旨在提升 Pinterest Hadoop 基础设施的自主性和弹性。

 

转向 HCC 使 Pinterest 能够按需扩展其数据处理平台,降低人为错误的风险,并安全地执行原地迁移,最小化停机时间或对应用程序的影响。随着云中数据基础设施动态性和弹性的日益增加,Pinterest 的方法为用现代自动化原理管理 Hadoop 等有状态系统提供了一个令人信服的蓝图。

 

另一家科技巨头 Uber介绍了他们将庞大的基于 Hadoop 的批处理分析技术栈转移到 Google Cloud Platform 的分阶段策略。该技术栈管理着高达艾字节的数据和数万台服务器。最初,Uber 将核心组件迁移到了基于 GCP 的基础架构即服务上,为的是尽可能地减少复制本地环境可能造成的干扰。随后,团队按计划逐步采用了 Dataproc、BigQuery 和 Google Cloud Storage 等托管服务,以及 Spark、Hive 和 Presto 的云原生抽象和反向兼容代理。Uber 的分层方法将对客户端的影响降到了最低,同时在云中启用了一个可扩展的现代化弹性平台。

 

这两个案例凸显了一个共同的范式:通过精心设计的编排、复制和兼容性工具,大规模 Hadoop 系统可以安全地迁移或现代化,并且停机时间最小化。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:

https://www.infoq.com/news/2025/07/pinterest-hadoop-cluster/

2025-08-05 13:008177

评论

发布
暂无评论

保持模块的兼容性

Rayjun

go modules Go 语言

日记 2021年2月15日(周一)

Changing Lin

2月春节不断更

ARTS打卡 第31周

引花眠

微服务 ARTS 打卡计划

JUnit速查手册

jiangling500

Java JUnit

华为 MPLS的数据转发流程

艺博东

华为

《我们脑中挥之不去的问题》 - 卓克科普(3)

石云升

读书笔记 科普 2月春节不断更

ElasticSearch.02 - 安装

insight

elasticsearch 2月春节不断更

Flink集群部署:Standalone部署

正向成长

工作学习累了?试试 GitHub 上的那些简单易学的游戏项目吧!

JackTian

GitHub 开源 游戏 2月春节不断更

week12-homework

J

翻译:《实用的Python编程》01_03_Numbers

codists

Python

【译文】工作六年后,我对软件开发的认知转变

Zhendong

程序员 软件开发

年终述职PPT(996一年,怎么会什么都没干!)

鲁米

年终总结

程序员成长第八篇:做好测试工作

石云升

程序员 测试 2月春节不断更

中国科学家突破区块链核心技术

CECBC

区块链

松耦合

sinsy

设计模式 RabbitMQ

深入 Python 解释器源码,我终于搞明白了字符串驻留的原理!

Python猫

Python 编程

记一次有意思的微信视频号直播

小匚

产品经理

数字资产助力未来十年打赢数字经济战

CECBC

数字经济

机器学习笔记之:

Nydia

诊所数字化从预约开始

boshi

数字化医疗 七日更 线上预约

Elasticsearch Mapping Index索引

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

什么是MySQL数据库?看这一篇干货文章就够了!

我是哪吒

学习 程序员 后端 MySQ 2月春节不断更

面向对象设计原则

引花眠

面向对象设计原则

第四章作业

Deborah

今日出门

Nydia

Idea应用启动时WEB-INF/lib无效标记问题处理

程序员架构进阶

Java IntelliJ IDEA 七日更 2月春节不断更

11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼

梦想橡皮擦

Python 2月春节不断更 python入门

CI-基于JMeter的性能测试

夏兮。

公路交通区块链技术的痛点问题和典型场景应用

CECBC

区块链

【LeetCode】最大连续1的个数Java题解

Albert

算法 LeetCode 2月春节不断更

Pinterest利用内部编排框架Hadoop Control Center实现Hadoop集群的自动扩展与迁移_框架_InfoQ精选文章