Yarn 框架原理
2015-12-05 13:12:44 18 举报
Yarn是一个由Facebook开发的开源资源管理和调度平台。它使用容器化技术,将应用程序和其依赖项打包在一起,形成一个可移植的单元,从而简化了应用程序的部署和管理。Yarn的核心原理是将资源管理和任务调度分离开来。它通过一个中央资源管理器来管理集群中的计算资源,同时使用一个调度器来分配和执行任务。这种设计使得Yarn能够高效地处理大规模的分布式计算任务,并提供高可靠性和容错性。此外,Yarn还具有灵活的配置选项和可扩展性,可以根据不同的应用场景进行调整和优化。总之,Yarn是一个功能强大、可靠且易于使用的分布式计算框架,适用于各种规模的应用程序开发和部署。
作者其他创作
大纲/内容
node manager node 节点
Client Node客户端节点
4. submit application调用资源管理器的 submitApplication() 提交作业
Shared FileSystem共享文件系统(如 HDFS)
task JVM 环境
Client JVM 环境
Job
ResourceManager角色
YarnChild
9b. launch1) container 容器启动后2) 启动 task JVM 运行环境3) 准备初始化该任务主类 YarnChild 的 java 应用程序执行任务
7. retrieve input splits检索输入分割1) 接受来自 HDFS 的在客户端计算的输入分片2) 对每个分片创建一个 map 任务对象3) 创建 reduce 对象( 由 mapreduce.job.reduces 属性决定创建个数)
resource manager node资源管理器节点
container 容器
ApplicationMasterMRAppMaster (案例 MapReduce Master)container 容器
6. initialize job初始化作业1) ApplicationMaster 在 container 中对作业进行初始化2) 保持对作业进度的跟踪3) 接受来自任务的进度和完成报告
NodeManager角色
在 Yarn 中,资源分为更细的粒度1) Yarn 调度器申请资源范围默认可以申请最小值 Myarn.scheduler.minimum-allocation-mb = 1024默认可以申请的最大值 Myarn.scheduler.maximum-allocation-mb = 81922) ApplicationMaster 申请资源范围请求最小值(1024) ~ 最大限制范围的任意最小值倍数的内存容量(8192)
11. run运行任务
2. get new application从资源管理器获取 appID
10. retrieve job resources检索工作资源1) YarnChild 在运行之前,首先任务需要的资源本地化(包括作业的配置、Jar 文、所有来自分布式缓存的文件)
一、作业提交1. run job案例: 配置 MapReduce 运行框架mapreduce.framework.name=yarn
二、作业初始化5a. start container1) 资源管理器收到调用的 submitApplication() 消息后,将请求传递给调度器(scheduler).
MapReduceprogram 程序
0 条评论
下一页