介绍
是Hadoop 的资源管理系统 YARN提供请求和使用集群资源的API,但这些API很少直接用于用户代码。相反,用户代码中用的是分布式计算框架提供的更高层的API,这些API建立在YARN之上且向用户隐藏了资源管理细节。
剖析YARN应用运行机制
-
Resource Manager 管理集群上资源使用资源使用的资源管理器
-
Node Manager 运行在集群所有节点上且能够启动和监控容器的节点管理器
-
Application Master: 负责数据处理job的执行调度
-
Container 容器用于 执行特定应用程序的进程,每个容器都有资源限制(内存,CPU等),一个容器可以是Unix 进程,也可以是一个Linux cgroup,取决于YARN的配置
-
资源请求
- 当请求多个容器时,可以指定每个容器需要的计算资源数量(内存和CPU),还可以指定对容器的本地限制要求
- YARN 应用可以在运行中的任意时刻提出资源申请
-
应用生命期 差异性很大,短则几秒 长则数月
-
构建YARN应用 使用现成的应用
YARN 中的调度
调度通常是一个难题,并且没有一个所谓“最好”的策略
参考博客:调度机制
- 调度选项
- FIFO 调度器
- 优点是简单易懂,无需配置,不适合共享集群
- 容量调度器
- 具体到一个队列内,使用FIFO 调度策略对应用进行调度
- 公平调度器
- FIFO 调度器