Download presentation
Presentation is loading. Please wait.
1
YARN原理和基本框架 张伟
2
个人简介 2012年毕业于西安交通大学电信 学院,现任天云软件云平台开发工 程师,熟悉YARN,CloudStack,
OpenStack等开源云平台软件。现在 主要工作集中在SkyForm云平台的统 一资源管理系统开发。
3
Docker、OpenStack on YARN
目录 YARN简单介绍 YARN基础架构 YARN工作流程 YARN调度器介绍 Docker、OpenStack on YARN 总结
4
YARN简单介绍 YARN(Yet Another Resource Negotiator): Hadoop 新的统一资源管理框架。
主要功能: 资源收集 资源分配 资源监控 资源调整 目的: 提供一种多用户共享集群资源的方法,提高资源利用率,降低集群管理成本
5
YARN 基础架构 单个节点的资源管理和使用 发送任务请求&查询任务状态 应用程序的管理 申请资源&分配资源; 监控任务执行状态等
集群的资源管理和调度 处理客户端请求; 启动/监控AM&NM; 资源分配与调度等 任务运行环境的抽象
6
YARN基础架构
7
Resource Manager
8
Node Manager
9
Node Manager事件
10
YARN工作流程
11
ResourceTrackerService
资源申请流程 ResourceTrackerService ResourceScheduler Resource Manager 4. Resource_Update 5. Scheduling and allocate resource 2. NodeHeartbeat Assigned containers 3. response 7. Containers as response 1. resource request 6. AppMaster Heartbeat 8. Run tasks in containers Task NodeManager Application Master Task Task
12
YARN 调度器 调度器维护一群队列的信息。用户可以向一个或者多个队列提交应用。每次NM心跳的时候,调度器根据一定的规则选择一个队列,再在队列上选择一个应用,尝试在这个应用上分配资源。调度器在分配过程中优先匹配本地资源来申请资源,其次是同机架的,最后的任意机器的。 双层调度器 上层是一个非常轻量的调度系统,负责资源分配,但不侵入应用的调度策略 下层是具体某个应用程序的调度器,如hadoop, storm, spark, mpi等 支持资源预留 如果资源不足,调度器会保留资源请求,待资源足够的时候优先分配资源。
13
YARN 调度算法 FifoScheduler:最简单的调度器,按照先进先出的方式处理应用。只有一个队列可提交应用,所有用户提交到这个队列。可以针对这个队列设置ACL。没有应用优先级可以配置。 CapacityScheduler:可以看作是FifoScheduler的多队列版本。每个队列可以限制资源使用量。 FairScheduler:多队列,多用户共享资源。资源抢占特性,是指调度器能够依据公平资源共享算法,计算每个队列应得的资源,将超额资源的队列的部分容器释放掉的特性。
14
调度算法对比 Capacity Scheduler Fair Scheduler 目标
Capacity Scheduler Fair Scheduler 目标 提供一种多用户共享集群资源的方法,以提高资源利用率和降低集群管理成本。 设计思想 队列需提前规划好,资源按设置的比例分配个各个队列。并添加严格的限制防止单个用户或队列独占所有资源。 队列可以在运行时动态添加,基于最大最小公平原则把资源平均分配给各个用户或队列。 是否支持动态加载配置文件 是 是否支持负载均衡 否 是否支持资源抢占 是否支持批量调度 Container请求资源粒度 最小资源量的整数倍 有专门的内存规整化参数 本地性任务调度优化 基于跳过次数的延迟机制 队列间资源分配方式 资源使用率低者优先 FIFO、Fair或DRF 队列内资源分配方式 FIFO或DRF
15
Docker on YARN NodeManager提供三种ContainerExecutor实现:
DefaultContainerExecutor:以管理员身份运行Container启动脚本。 LinuxContainerExecutor:以Container所属用户身份运行Container启动脚本。使用cgroups进行资源隔离。 DockerContainerExecutor:在Docker中运行Container。
16
OpenStack & Yarn SkyForm Scheduler CMDB provisioning Monitor Cluster
Other Cluster Hadoop Cluster OpenStack Cluster
17
OpenStack & YARN SkyForm NodeMgr SkyForm Scheduler Analysis Server
NMmgr Analysis Server Collect Server App mgr KVM VM libvirt VM SkyForm Plugin OpenStack Scheduler XEN VM xenapi VM VMWARE VM api VM
18
OpenStack & YARN
19
其它运行在Yarn上的框架 HBase on YARN Impala On YARN Spark On YARN Kubernetes On YARN
20
总结 设计目标:资源统一管理与调度平台 基本组件: Client ResourceManager
NodeManager ApplicationMaster 调度器: 基于队列 FIFO、Capacity、Fair 修改NodeManager执行器支持Docker 支持的框架: Hbase Spark Storm … 可方便的扩展
21
谢谢
Similar presentations