Apache Hadoop YARN 简介
- Yarn 作为 Job 的管理和资源调度器,他的基本思想是把资源调度和作业监控分配到单独的守护进程中去。这一想法由一个全局的 RecourseManager(RM)和每个 APP 的 ApplicationMaster(AM)实现。同样 RM 和 AM 是主从架构,RM 和 NameNode 位于同一 Node,AM 则位于 DataNode.
- 应用程序要么是单一的作业,要么是作业集的 DAG
- RecourseManager 负责所有的资源的调度分配,负责给和每个 APP 的 ApplicationMaster 分配资源和容器 Container 用于任务的执行,并监测他们的资源(CPU、内存、磁盘、网络)使用情况
- ResourceManager 主要有两部分组成: Scheduler 和 ApplicationsManager
任务处理流程
Client 提交任务,RM 会在 NM 中启动一个 AM,AM 根据 job 应用信息向 RM 请求资源,RM 分配资源 Container 给每个 AM,AM 把 container 分配给 task 作为容器执行。AM 会监控任务的执行情况,最终会向 RM 响应结果。
Scheduler
Scheduler 负责将资源分配给各个运行的应用程序 APP,而这些应用程序受制于容量、队列等常见的约束。Scheduler 是纯粹的调度,在某种意义上,它不监视或跟踪应用程序的状态。而且,由于应用程序故障或硬件故障,它不提供重新启动失败任务的保证。调度器根据应用程序的资源需求执行调度功能;它基于一个抽象的资源容器 Container,这个容器包含内存、CPU、磁盘、网络等资源
ApplicationsManager
ApplicationsManager 主要负责接受作业的提交; 为要执行的应用 APP(提交的作业应用)指定一个特定的容器(ApplicationMaster); 任务执行失败时负责重启 ApplicationMaster container
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于