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

【分布式理论17】分布式调度3:分布式架构-从中央式调度到共享状态调度

文章目录

    • 一、中央式调度器
      • 1. 核心思想
      • 2. 工作流程
      • 3. 优缺点
      • 4. **典型案例:Google Borg**
    • 二、两级调度器
      • 1. **核心思想**
      • 2. **工作流程**
      • 3. 优缺点
      • 4. **典型案例:Hadoop YARN**
    • 三、共享状态调度器
      • 1. **核心思想**
      • 2. **工作流程**
      • 3. 优缺点
      • 4. **典型案例:Google Omega**
    • 四、三种调度架构的对比

在分布式系统中,调度器是任务与资源之间的纽带,负责将计算任务分配到合适的资源节点上执行。随着分布式系统规模的扩大和任务复杂度的增加,调度器的架构也在不断演进。

本文将详细介绍三种主流的分布式调度架构:中央式调度器两级调度器共享状态调度器,并通过实际案例(如 Google Borg、Hadoop YARN 和 Google Omega)深入探讨其工作原理、优缺点及适用场景。

 

一、中央式调度器

1. 核心思想

中央式调度器(Monolithic Scheduler)是分布式调度架构中最简单的一种形式。它由一个全局协调者(调度器)负责管理整个集群的资源,并分配任务到合适的节点上执行。调度器维护资源列表和任务列表,通过全局调度策略实现任务与资源的匹配。

 

2. 工作流程

在这里插入图片描述

  1. 资源收集:调度器通过集群中节点上的资源管理器收集各节点的资源信息。
  2. 任务接收:调度器接收用户提交的计算任务。
  3. 任务分配:调度器根据调度策略将任务分配到合适的节点上执行。

 

3. 优缺点

  • 全局优化:调度器掌握全局资源信息,能够实现最优的任务分配。
  • 实现简单:架构清晰,易于理解和实现。
  • 单点故障:调度器一旦故障,整个系统无法工作。
  • 性能瓶颈:所有任务请求和调度都集中在一个调度器上,容易成为系统的性能瓶颈。

 

4. 典型案例:Google Borg

  • 架构:Borg 是 Google 内部的集群资源管理系统,管理数万台服务器和数十万个作业。
  • 调度过程
    1. 用户提交作业,Borg 将作业中的任务加入执行队列。
    2. 调度器扫描任务队列,将任务分配到满足资源条件和约束的节点上。
    3. 节点上的 Borglet 负责管理本地任务和资源,并向 BorgMaster 汇报状态。
  • 特点
    • 支持高可靠性和高可用性。
    • 通过约束条件(如处理器架构、OS 版本)实现资源的精确分配。

 

二、两级调度器

1. 核心思想

两级调度器(Two-Level Scheduler)将调度器分为两层:

  • 一级调度器:负责资源管理和任务状态维护。
  • 二级调度器:负责任务与资源的匹配,针对不同的计算框架(如 Spark、MapReduce)进行扩展。

2. 工作流程

在这里插入图片描述

  1. 资源收集:一级调度器通过节点上的资源管理器收集资源信息。
  2. 任务接收:一级调度器接收用户提交的计算任务,并将其交给二级调度器处理。
  3. 任务分配:二级调度器根据计算框架的调度策略将任务分配到合适的节点上。
  4. 任务执行:节点执行任务,并将结果返回给一级调度器。

 

3. 优缺点

  • 扩展性强:通过二级调度器支持多种计算框架。
  • 并发性高:能够处理高并发的任务请求。
  • 全局优化受限:二级调度器无法获取全局资源信息,难以实现最优调度。
  • 悲观锁限制:采用悲观锁机制,可能导致并发量受限。

 

4. 典型案例:Hadoop YARN

  • 架构:YARN(Yet Another Resource Negotiator)是 Hadoop 2.0 的资源管理系统,采用两级调度架构。
  • 组件
    • Resource Manager:全局资源管理器,负责任务调度和资源分配。
    • Application Master:单个作业的管理器,负责任务的拆分和资源申请。
    • Node Manager:节点资源管理器,负责本地资源的管理和任务执行。
  • 调度过程
    1. 用户提交作业,Resource Manager 启动 Application Master。
    2. Application Master 向 Resource Manager 申请资源,并将任务分配到 Node Manager 上执行。
    3. Node Manager 启动任务,并将状态同步给 Application Master。

 

三、共享状态调度器

1. 核心思想

共享状态调度器(Shared-State Scheduler)通过共享全局资源状态,使每个调度器都能获取集群中的所有资源信息,从而实现全局优化。它采用乐观锁机制,支持高并发的任务调度。

 

2. 工作流程

  1. 资源同步:调度器从共享存储(如 State Storage)中同步全局资源状态。
  2. 任务分配:调度器根据全局资源状态将任务分配到合适的节点上。
  3. 冲突检测:采用乐观锁机制,在任务提交时检测资源冲突。
  4. 任务执行:节点执行任务,并将结果返回给调度器。

 

3. 优缺点

  • 全局优化:每个调度器都能获取全局资源信息,实现最优调度。
  • 高并发:采用乐观锁机制,支持高并发的任务调度。
  • 实现复杂:需要维护全局资源状态,并处理资源冲突。
  • 一致性挑战:在分布式环境下,保证资源状态的一致性较为困难。

 

4. 典型案例:Google Omega

  • 架构:Omega 是 Google 提出的共享状态调度器,采用乐观锁机制实现高并发调度。
  • 调度过程
    1. 调度器从 State Storage 中同步全局资源状态。
    2. 调度器将作业拆分为多个任务,并为每个任务分配资源。
    3. 采用乐观锁机制检测资源冲突,确保任务执行的原子性。
    4. 任务执行完成后,释放资源并更新全局资源状态。

 

四、三种调度架构的对比

特性中央式调度器两级调度器共享状态调度器
核心思想单一调度器管理全局资源资源管理与任务调度分离共享全局资源状态,支持高并发
优点全局优化,实现简单扩展性强,支持多种计算框架全局优化,高并发
缺点单点故障,性能瓶颈全局优化受限,悲观锁限制实现复杂,一致性挑战
适用场景小规模集群中等规模集群大规模集群
典型案例Google BorgHadoop YARNGoogle Omega

分布式调度架构从中央式调度器两级调度器,再到共享状态调度器,经历了从简单到复杂、从集中到分布式的演进过程。每种架构都有其独特的优势和适用场景:

  • 中央式调度器适合小规模集群,实现简单但存在单点故障风险。
  • 两级调度器通过分层设计支持多种计算框架,适合中等规模集群。
  • 共享状态调度器通过共享全局资源状态和乐观锁机制,实现高并发和全局优化,适合大规模集群。

在实际应用中,应根据系统规模、任务复杂度和性能需求选择合适的调度架构,以实现资源的高效利用和任务的最优调度。

 
 
参考:《分布式架构原理与实现》

http://www.xdnf.cn/news/846.html

相关文章:

  • 8.1 线性变换的思想
  • 基于遗传算法的智能组卷系统设计与实现(springboot+ssm+React+mysql)含万字详细文档
  • Elasticsearch中的_source字段讲解
  • hadoop与spark的区别和联系
  • 大模型面经 | 春招、秋招算法面试常考八股文附答案(三)
  • 主流大模型(如OpenAI、阿里云通义千问、Anthropic、Hugging Face等)调用不同API的参数说明及对比总结
  • 53、Spring Boot 详细讲义(十)(Spring Boot 高级主题)
  • Python自动化selenium-一直卡着不打开浏览器怎么办?
  • 2025.4.21总结
  • 【架构】-- StarRocks 和 Doris 介绍与选型建议
  • [密码学实战]密评考试训练系统v1.0程序及密评参考题库(获取路径在文末)
  • 8086微机原理与接口技术复习(1)存储器(2)接口
  • 爬虫学习——LinkEXtractor提取链接与Exporter导出数据
  • 强化学习笔记(三)——表格型方法(蒙特卡洛、时序差分)
  • P3959 [NOIP 2017 提高组] 宝藏
  • 图形编辑器基于Paper.js教程27:对图像描摹的功能实现,以及参数调整
  • 一款支持多线程的批量任务均衡器
  • Craft 是什么:腾讯 Cloud Studio 中的 CodeBuddy 提供了 Craft 功能
  • 阻塞队列-ArrayBlockingQueue
  • 【Linux专栏】zip 多个文件不带路径
  • 入选AAAI 2025,浙江大学提出多对一回归模型M2OST,利用数字病理图像精准预测基因表达
  • C语言高频面试题——指针数组和数组指针
  • Spark-SQL核心编程
  • day33和day34图像处理OpenCV
  • MySQL数据库 - InnoDB引擎
  • DeepSeek智能时空数据分析(二):3秒对话式搞定“等时圈”绘制
  • OneClicker脚本自动运行工具
  • 2025年蓝桥杯第十六届CC++大学B组真题及代码
  • 模拟堆详解
  • 软件工程中的维护类型