云主机的亲和性策略》系列,共包含以下文章:

  • 1️⃣ 云主机的亲和性策略(一):快乐旅行团
  • 2️⃣ 云主机的亲和性策略(二):集群节点组
  • 3️⃣ 云主机的亲和性策略(三):云主机 & 宿主机
  • 4️⃣ 云主机的亲和性策略(四):云主机组

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!

云主机的亲和性策略(二):集群节点组

  • 1.场景设定
    • 1.1 第一步:创建反亲和性云主机组
    • 1.2 第二步:创建节点并加入对应组
      • 1.2.1 创建 Master 节点(3个)
      • 1.2.2 创建 Core 节点(5个)
      • 1.2.3 创建 Task 节点(20个)
    • 1.3 第三步:调度器执行反亲和性逻辑
  • 2.故障模拟:宿主机宕机的影响
  • 3.技术组件对应表
  • 4.为什么这样设计?
  • 5.输出结果验证

在上一篇博文《【云计算】云主机的亲和性策略(一):快乐旅行团》中,我们用「旅行团分车」的比喻来解释云主机组如何实现反亲和性策略。

本文让我们将「旅行团分车」的比喻转化为真实的云计算场景,用 集群节点组Master / Core / Task)和 宿主机调度 来解释反亲和性策略的实现过程。

1.场景设定

目标:在公有云上部署一个高可用大数据集群(如 Spark 集群),包含三类节点:

  • Master 组333 个管理节点(必须高可用,任意两个不能在同一宿主机)
  • Core 组555 个核心计算节点(承载关键服务,需分散部署)
  • Task 组202020 个弹性计算节点(可容忍适度集中)
  • ✳️ 要求:同组节点必须分散在不同宿主机上(反亲和性)!

1.1 第一步:创建反亲和性云主机组

在云平台中创建三个独立的 反亲和性组,每组绑定一类节点:

# 创建Master反亲和组(策略:严格分散)
aws ec2 create-placement-group --group-name master-anti-group --strategy spread# 创建Core反亲和组(策略:严格分散)
aws ec2 create-placement-group --group-name core-anti-group --strategy spread# 创建Task反亲和组(策略:软性分散,资源不足时可集中)
aws ec2 create-placement-group --group-name task-soft-group --strategy spread

相当于为三类节点制定独立规则

  • Master 组:必须 1 人/车(宿主机)
  • Core 组:必须 1 人/车
  • Task 组:尽量 1 人/车,但允许拼车

1.2 第二步:创建节点并加入对应组

1.2.1 创建 Master 节点(3个)

for i in {1..3}; doaws ec2 run-instances \--placement-group master-anti-group \  # 加入Master组--tag-specifications "ResourceType=instance,Tags=[{Key=Role,Value=Master}]" \--instance-type m5.xlarge
done

调度规则:每个 Master 必须运行在 不同宿主机(若宿主机不足,则创建失败)

1.2.2 创建 Core 节点(5个)

for i in {1..5}; doaws ec2 run-instances \--placement-group core-anti-group \    # 加入Core组--tag-specifications "ResourceType=instance,Tags=[{Key=Role,Value=Core}]" \--instance-type c5.4xlarge
done

调度规则:每个 Core 必须运行在 不同宿主机(且不能与 Master 同机)

1.2.3 创建 Task 节点(20个)

for i in {1..20}; doaws ec2 run-instances \--placement-group task-soft-group \    # 加入Task组(软性策略)--tag-specifications "ResourceType=instance,Tags=[{Key=Role,Value=Task}]" \--instance-type t3.medium
done

调度规则:尽量分散,但宿主机资源紧张时可部署到同一宿主机(每宿主机最多 4 个 Task)

1.3 第三步:调度器执行反亲和性逻辑

假设云平台有 10 台宿主机(H1~H10),调度器工作流程如下:

  • 1️⃣ 放置 Master 节点
    • ✅ Master-1 → 随机选 H1
    • ✅ Master-2 → 排除 H1 → 选 H2
    • ✅ Master-3 → 排除 H1 / H2 → 选 H3
  • 2️⃣ 放置 Core 节点
    • ✅ Core-1 → 排除 H1 / H2 / H3(已有 Master)→ 选 H4
    • ✅ Core-2 → 排除 H4 → 选 H5
    • ✅ Core-5 → 排除 H4 / H5 / H6 / H7 → 选 H8
  • 3️⃣ 放置 Task 节点
    • ✅ Task-1 ~ 4 → 因软性策略,允许放在 H9(每机 4 个)
    • ✅ Task-5 ~ 8 → 放 H10(每机 4 个)
    • ✅ Task-9 ~ 20 → 因 H1-H8 已有Master / Core 但未满,分散部署到 H1-H8(每机 1-2 个)

最终分布

宿主机节点类型
H1Master-1 + Task-9
H2Master-2 + Task-10
H3Master-3 + Task-11
H4Core-1 + Task-12
H9Task-1~4(集中部署)
H10Task-5~8(集中部署)

2.故障模拟:宿主机宕机的影响

假设 H9 宿主机故障:

  • Master 组:H1 / H2 / H3 节点完好 → 集群管理功能正常
  • Core 组:H4 / H5 / H6 / H7 / H8 节点完好 → 核心计算服务正常
  • Task 组:H9 上的 Task-1~4 宕机 → 自动迁移到其他宿主机(损失部分算力但可恢复)

关键效果

  • Master / Core 组因严格反亲和,单宿主机故障 不影响同组其他节点
  • Task 组允许集中部署,故障时损失可控(牺牲部分可用性换取成本优化)。

3.技术组件对应表

云计算场景
说明
Master 组集群大脑(如 Spark Master),需最高可用性
Core 组核心服务(如 HDFS DataNode),需高可用
Task 组弹性计算单元(如 Spark Executor),可容忍适度故障
反亲和性云主机组声明 “同组节点必须物理隔离” 的策略载体
宿主机(H1~H10)物理服务器,承载虚拟化的云主机
软性策略(Task 组)资源不足时允许策略妥协,避免节点创建失败

4.为什么这样设计?

  • Master / Core 组严格反亲和
    • → 避免单宿主机宕机导致 集群管理瘫痪核心数据丢失(如 HDFS 同一块数据的多个副本被分散)。
  • Task 组软性反亲和
    • → 计算节点可快速重建,优先保证 资源利用率弹性伸缩能力
  • 分层策略
    • → 不同节点重要性不同,反亲和性强度需差异化(Master > Core > Task)。

5.输出结果验证

通过云平台 API 查看节点分布:

# 查看Master节点位置(每个宿主机仅1个)
aws ec2 describe-instances \--filters "Name=tag:Role,Values=Master" \--query "Reservations[].Instances[].[InstanceId, Placement.AvailabilityZone]"# 输出示例:
[["i-001", "us-east-1a (宿主机H1)"],["i-002", "us-east-1b (宿主机H2)"],["i-003", "us-east-1c (宿主机H3)"]
]

💡 这就是公有云反亲和性组的本质

  • 通过组策略约束,让关键节点在物理层面 “保持距离”,当单个宿主机爆炸时,你的集群不会全军覆没!

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

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

相关文章

【人工智能】AI代理在零售业的崛起:从草莓订购到全流程购物体验

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在零售业快速演变的格局中,AI代理正作为变革力量崛起,连接消费者需求与无缝履行。本文深入探讨AI代理在零售中的兴起,从通过对话界面订购…

【读论文】从Qwen3技术报告到Qwen3-30B-A3B 模型的深度解读

引言:当大模型追求又小又好用 最近都是各种新大模型满天飞,其中Qwen3-30B-A3B-Instruct-2507很是亮眼,这种参数尺寸是相对友好的,效果好而且模型不大。从这里就引发一下疑问,如何在保证强大能力的同时,兼顾模型的效率和可访问性?毫无疑问,混合专家 (Mixture-of-Expert…

【番外篇15】中心极限定理:从数学原理到生活案例

一、什么是中心极限定理?中心极限定理(Central Limit Theorem, CLT)是概率论与统计学中最重要的定理之一,它揭示了为什么正态分布在自然界和统计学中如此普遍。​定理表述​:设X₁, X₂, ..., Xₙ 是一组独立同分布的随机变量序列&#xff0c…

本地构建Docker镜像并推送到GitHub Container Registry

一、本地构建并推送镜像1. 登录GitHub Container Registry首先,需要登录到GitHub Container Registry (GHCR):# 使用个人访问令牌(PAT)登录 docker login ghcr.io -u 你的GitHub用户名 -p 你的个人访问令牌注意:你需要在GitHub上创建一个具有…

DP-v2.1-mem-clean学习(3.6.8-3.6.8.1)

3.6.8 lttpr非透明模式下的链路训练 3.6.8.1 支持8b/10b链路层训练规范 ‌默认透明模式‌ 若上游设备未启用LTTPR非透明模式(Non-transparent),需在链路训练前将DPCD F0003h寄存器写入默认值55h38 ‌非法中继器计数值处理‌ 当DPCD F0002h(PHY_REPEATER_CNT)返回值非有…

kali安装maven

kali安装maven 下载maven的安装包 wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz 注意可能返回404,这是因为官网已经更新了版本,这种情况可以自己访问https://dlcdn.apache.org/maven/maven-3查看一下最…

GEO优化:品牌营销新战场的光明与荆棘

在AI重塑信息获取方式的今天,一种名为GEO(生成式引擎优化)​的策略正悄然成为企业营销版图的新坐标。它不追求传统搜索引擎中的链接排名,而是争夺生成式AI(如ChatGPT、DeepSeek等)答案中的“话语权”——让…

牛客 - 旋转数组的最小数字

描述 有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这…

1分钟临时共享空间在线小工具实现

运行效果:1分钟临时共享空间 - 免注册即时文件文本共享工具 | 极速传 直接上代码: using Microsoft.AspNetCore.Mvc; using SaaS.OfficialWebSite.Web.Utils; using ZXing.QrCode; using ZXing; using SkiaSharp; using ZXing.SkiaSharp.Rendering; usin…

操作系统-lecture5(线程)

进程的缺点 在创建了子进程的时候,得到了可以并发执行的好处 但创建了进程资源会造成浪费 线程的引入 在同一个进程中有这样两个执行流,为并发执行的,称之为线程 这里引用下《操作系统概念》中的线程概述 任务举例 在复制的过程中&#xf…

FPGA kernel 仿真器调试环境搭建

参考:haps阶段说明2:kernel运行和调试 1 仿真器加载FIT及调试步骤 由于使用仿真器,就要额外配置DS-5的软件环境,有些步骤略复杂,请仔细按照说明操作。 1.1 导入kernel工程 不导入可以运行,但导入方便调试 file——-import 导入后的工程如图 1.2 创建debug 使用attach方…

MySQL(173)MySQL中的存储过程和函数有什么区别?

在MySQL中,存储过程(Stored Procedures)和函数(Functions)是两种用于封装可重用SQL代码的机制。尽管它们在很多方面类似,但仍有一些重要的区别。以下是对存储过程和函数的详细解释,以及如何在My…

可计算存储(Computational Storage)与DPU(Data Processing Unit)的技术特点对比及实际应用场景分析

以下是对可计算存储(Computational Storage)与DPU(Data Processing Unit)的技术特点对比及实际应用场景分析,结合引用资料进行综合说明:一、技术核心对比维度可计算存储DPU核心差异定位存储设备内置计算能力…

rag学习-以项目为基础快速启动掌握rag

rag从0到放弃黄帝内经rag问答系统RAG 项目版本迭代总览各版本技术细节如何使用黄帝内经rag问答系统 本项目使用爬虫获取了皇帝内经全文以此为数据构建检索增强系统 本项目以一个系统的多层迭代不断更新优化技术,由浅入深逐渐理解rag原理及优化技术 话不多说github…

linux 启动流程?

linux 启动流程 CPU 上电后最先执行的启动代码,通常确实是放在 arch 目录下对应架构的启动文件里。这是因为启动代码强相关于 CPU 架构和硬件细节,不同架构差异非常大。具体说明 1. 为什么启动代码放在 arch 目录? 启动代码要设置 CPU 状态&a…

《Kubernetes部署篇:基于Kylin V10+ARM64架构CPU使用containerd部署K8S 1.33.3集群(多主多从)》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 一、架构图 如下图所示: 二、环境信息 基于x86_64+aarch64架构使用containerd部署K8S 1.33.3集群资源合集(三主多从) 2、部署规划 云平台 主机名 K8S版本 系统版本 CPU架构…

Docker 镜像打包为 ZIP 文件便于分享和转发

网上找到的记录一下方便下次看步骤详解1. 将镜像导出为 TAR 文件Docker 提供了 docker save 命令,可以将镜像导出为 .tar 文件。使用以下命令:docker save -o dify.tar dify说明:docker save:导出镜像为文件。-o dify.tar&#xf…

一对一交友小程序 / APP 系统架构分析

一对一交友小程序 / APP 系统架构分析一、引言在数字化社交的大背景下,一对一交友小程序和 APP 为人们拓展社交圈提供了便捷途径。合理且高效的系统架构是保障此类应用稳定运行、提升用户体验的基石。本文将深入剖析一对一交友小程序 / APP 的系统架构,涵…

Anthropic最新研究Persona vector人格向量

今天本来就想更一期强化学习,但是突然看了Anthropic的persona vector,所以又来写这一篇,因为我觉得这个很有价值以往我们玩LLM比较怕的事就事他乱说话作为概率模型,它能说对,它也能乱编,乱编轻症就是所谓的…

Spring AI集成Elasticsearch向量检索时filter过滤失效问题排查与解决方案

使用vectorStore.similaritySearch遇到问题 最近需要做一个功能,用到了es做向量数据库。在使用vectorStore.similaritySearch查询的时候,发现filterExpression中加的条件并没有完全生效,导致查询出来的数据不准确,出现了不符合me…