惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
Webroot Blog
Webroot Blog
GbyAI
GbyAI
S
SegmentFault 最新的问题
Cyberwarzone
Cyberwarzone
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 【当耐特】
S
Secure Thoughts
酷 壳 – CoolShell
酷 壳 – CoolShell
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
S
Security Affairs
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
Hugging Face - Blog
Hugging Face - Blog
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
T
Threatpost
Forbes - Security
Forbes - Security
C
Cisco Blogs
Scott Helme
Scott Helme
Attack and Defense Labs
Attack and Defense Labs
Simon Willison's Weblog
Simon Willison's Weblog
腾讯CDC
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
Last Week in AI
Last Week in AI
Recorded Future
Recorded Future
小众软件
小众软件
V
Vulnerabilities – Threatpost
美团技术团队
人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
Hacker News - Newest:
Hacker News - Newest: "LLM"
I
Intezer
月光博客
月光博客
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 司徒正美
C
Cybersecurity and Infrastructure Security Agency CISA
Martin Fowler
Martin Fowler
博客园 - 聂微东

Inno' Blog

将 what-digit-you-write 部署到 Heroku上 | Inno' Blog 论文浅析:GpSense: A GPU-friendy method for common-sense subgraph matching in massively parallel architectures Github项目clone速度过慢?试试这招 | Inno' Blog Hadoop分布式搭建全流程记录 | Inno' Blog Shell编程学习记录 | Inno' Blog 重学MySQL之视图 | Inno' Blog 重学MySQL之查询练习 | Inno' Blog 重学MySQL之事务 | Inno' Blog 重学MySQL之范式 | Inno' Blog 重学MySQL之基本操作和约束 | Inno' Blog 为你的Web应用提供HTTPS服务 | Inno' Blog 一个关于切片的小问题 | Inno' Blog Go语言学习笔记 | Inno' Blog 关于英译中的个人技巧 | Inno' Blog 不知不觉已经写够了十万行代码 | Inno' Blog HDFS 架构 | Inno' Blog 正则中关于环视(lookaround)的小例子 | Inno' Blog 设计模式(十八):访问者模式 | Inno' Blog 如何借助Github进行协同开发 | Inno' Blog
YARN 架构 | Inno' Blog
Inno Fang · 2019-03-23 · via Inno' Blog

YARN 的基本思想是把资源管理和作业调度拆分成单独的守护进程,其拥有一个全局的 ResourceManager(RM) 和对每个应用的 ApplicationMaster(AM)。应用既可以是单个作业,也可以是多个作业。

ResourceManger 和 NodeManager 构成了数据计算框架。ResourceManager 是在系统中的所有应用之间仲裁资源的最终权限。NodeManager 是每台机器的框架代理,负责容器(Container)的管理,监视其资源的使用情况(CPU、内存、磁盘、网络),并向 ResourceManger 或者调度器(Scheduler)汇报这些情况。

实际上,每个应用程序的 ApplicationMaster 是一个特定于框架的库,其任务是协调来自 ResourceManager 的资源,并与 NodeManager 一起执行和监视这些任务。

ResourceManager 由两部分组成:Scheduler 和 ApplicationManager

Scheduler 会根据容量、队列等约束,负责将资源分配给各种正在运行的应用。在某种意义上,Scheduler 就是一个纯粹的调度器而已,它不对应用进行状态的监控或跟踪。此外,它不会保证因为应用错误或硬件故障而重启失败的任务。Scheduler 根据应用的资源需求来执行其调度功能。它基于资源容器的抽象概念执行调度功能,该资源容器包含内存、CPU、磁盘、网络等。

Scheduler 具有一个可插入策略,该策略负责在不同的队列、应用等之间划分集群资源。当前诸如 CapacitySchedulerFairScheduler 就是一些插件的示例。

ApplicationManager 负责接收作业提交,协商执行特定于应用的 ApplicationMaster 的第一个容器,并提供在失败时重启 ApplicationMaster 容器的服务。每个应用的 ApplicationMaster 负责调度来自 Scheduler 的合适的资源容器,跟踪它们的状态并监视其进度。

Hadoop 2.x 中的 MapReduce 与以前的稳定版本(Hadoop 1.x)保持 API 兼容性。这意味着所有 MapReduce 作业都应该在 YARN 上保持不变,只需重新编译即可。

总结

  • Client

    • 提交作业
    • 查询作业的运行进度
    • 杀死作业
  • ResuourceManager

    • 整个集群同一时间提供服务的 ResourceManager 只有一个
    • 负责集群资源的统一管理和调度
    • 处理客户端的请求(提交作业、杀死作业等)
    • 监控 NodeManager,当 NodeManager出现故障时,NodeManager 上的运行的任务需要询问 ApplicationMaster 如何处理
  • NodeManager

    • 整个集群有多个
    • 负责节点本身的资源管理
    • 定期向 ResourceManager 汇报本节点的资源使用情况
    • 接收来自 ResourceManager 的命令(重启 Container 等)
    • 处理来自 ApplicationMaster 的命令
  • ApplicationMaster

    • 每个应用程序对应一个 ApplicaitonMaster
    • 负责应用程序的管理
    • 为应用程序向 ResourceManager 申请资源并分配给内部的 Task
    • 需要与 NodeManager 进行通信(启动/停止 Task)
    • Task 运行在 Container 中,ApplicationMaster 也运行在 Container 中
  • Container

    • 封装了 CPU、Memory 等资源的一个容器
    • 是一个任务运行环境的抽象

Refernece

Apache Hadoop YARN

Copyright Notice: All articles in this blog are licensed under CC BY-NC-ND 4.0 unless stating additionally.