YARN分别针对普通用户,管理员和Web提供了三种对外服务,分别对应ClientRMService、AdminService和WebApp,本节将对这三个服务分别进行详细介绍。
1. ClientRMService
ClientRMService是为普通用户提供的服务,它会处理来自客户端各种RPC请求,比如提交应用程序、终止应用程序,获取应用程序运行状态等。ClientRMService实现了 ClientRMProtocol协议,提供了丰富的RPC接口,以下是几个例子:
public GetNewApplicationResponse getNewApplication(
GetNewApplicationRequest request)
public SubmitApplicationResponse submitApplication(
SubmitApplicationRequest request)
public KillApplicationResponse forceKillApplication(
KillApplicationRequest request)
public GetApplicationReportResponse getApplicationReport(
GetApplicationReportRequest request)
在客户端,当用户需要提交或者杀死一个作业时,直接使用封装好的对外命令即可,比如MapReduce杀死一个作业直接使用:
bin/hadoop job -kill job_XXX
该命令最终会调用forceKillApplication()函数。
2. AdminService
YARN为管理员提供了一套独立的服务接口,以防止大量的普通用户请求使管理员发送的管理命令饿死,管理员可通过这些接口管理集群,比如动态更新节点列表,更新ACL列表,更新队列信息等。通过该服务,YARN为管理员提供了以下几个接口/命令,以管理/更新系统中的队列、节点、用户等信息:
refreshQueues:更新队列信息,调用ResourceScheduler. Reinitialize(),触发重新加载调度器专有的资源配置文件。
refreshNodes:更新exclude和include节点列表,这两个节点列表分别在配置选项yarn.resourcemanager.nodes.exclude-path和yarn.resourcemanager.nodes.include-path指定的文件中设置,其中,exlude节点不能够接入ResourceManager,而include节点则可以接入,默认值为空,表示任何节点均可接入。
refreshSuperUserGroupsConfiguration:更新代理用户和所在的host,为了安全起见,YARN要求上层应用(如Oozie,Hive等)通过一个代理用户接入集群。
refreshUserToGroupsMappings:更新用户与用户组之间的映射,默认情况下,采用Linux 用户和用户组的映射,需要注意的是,YARN会对该映射关系进行缓存,当管理员在操作系统层修改了该映射关系,应使用该命令刷新缓存。
refreshAdminAcls:更新YARN集群管理员列表。可通过配置选项yarn. admin.acl设置YARN的集群管理员,这些管理员可以执行以上所有操作,管理用户应用程序(比如杀死应用程序)。
refreshServiceAcls:更新服务访问控制列表,ResourceManager中包含三个服务,分别是:ClientRMService,ApplicationMasterService和ResourceTrackerService,分别对应访问者Client、ApplicationMaster和NodeManager,管理员可通过该命令刷新这三个服务的合法访问者列表。
3. WebApp
为了更加友好地展示集群资源使用情况和应用程序运行状态等信息,YARN对外提供了一个Web 界面,这一部分有一个叫Hamlet的Web框架实现的,Hamlet是YARN仿照haml(http://haml.info/)开发的一个轻量级嵌入式Web框架。具体讨论见:https://issues.apache.org/jira/browse/MAPREDUCE-2399
分享到:
相关推荐
YARN(MRv2)搭建
yarn-v0.23.2.tar.gz 在安装ambari,源码编译的时候下载的文件有问题 手动下载 地址 https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz
本文将深入探讨Cloudera提供的YARN任务监控API,以及与之相关的Hadoop MapReduce API,帮助开发者更好地理解和利用这些工具进行集群管理和任务监控。 首先,我们关注YARN的Resource Manager API。Resource Manager...
Apache Flink是一个开源的分布式流处理框架,用于在...通过这些资源,用户可以深入了解Flink在分布式环境中的运行机制,掌握在YARN/K8S平台上部署Flink集群的最佳实践,并对Flink的核心概念和技术细节有更全面的认识。
YARN(Yet Another Resource Negotiator),即另一种资源协调者,是Apache Hadoop项目的一部分,它代表了Hadoop第二代的MapReduce框架,也就是Hadoop 2.0。YARN的主要目的是为了解决之前版本Hadoop的扩展性和资源...
YARN模块的详细分析涉及了接口的定义、各模块的功能以及它们之间的交互机制。例如,ResourceManager中的调度器模块负责根据各个应用的资源需求和优先级来调度资源,而MRAppMaster则是每个MapReduce作业的主节点,...
《Hadoop技术内幕深入解析YARN架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源...
Yarn 是一个现代化的、高性能的 JavaScript 包管理器,由 Facebook 在 2016 年推出,旨在解决 npm(Node Package Manager)在大型项目中的性能和可预测性问题。Yarn v1.22.5 是 Yarn 的一个稳定版本,提供了更快的...
用户在YARN上开发应用时,需要实现以下几个关键模块: - **Application Client**:用户界面,负责提交应用到YARN上,以及监控应用的状态。 - **Application Master (AM)**:负责整个应用的生命周期管理,包括向YARN...
Application Master是每个应用程序的专属管理者,它负责与Resource Manager交互,获取所需的资源Container,并与Node Manager协作执行和监控任务。Application Master是高度可定制的,可以根据不同的计算框架(如...
### Apache Hadoop YARN:Yet Another Resource Negotiator #### 概述 Apache Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的一个关键组件,它为Hadoop提供了资源管理和作业调度的能力。...
《Hadoop技术内幕:深入Yarn架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源管理...
YARN Essentials是关于Apache Hadoop的YARN(Yet Another Resource Negotiator)组件的详细介绍。该文档详细介绍了YARN的核心设计思想、架构组成、安装步骤、生态系统集成以及在集群中的管理与维护。以下是文档所...
rmstateutils 分析Hadoop Yarn Resource Manager状态存储的工具用法: 将存储库检出到系统中的目录。 CD到目录并运行mvn包成功构建之后,目标目录中应存在rmstateutils-1.0-SNAPSHOT-jar-with-dependencies.jar。 ...
- **MapReduce v2 (MRv2):** 作为 YARN 的一部分,支持新的 API,提高了灵活性和性能。 **2. MapReduce v1 与 MapReduce v2 的对比:** - **API 变更:** MRv2 提供了新的 API,允许开发者编写更复杂的应用程序。 ...
这表明解压后的文件可能包含整个YARN相关的源代码、配置文件、文档或者是一个自解压脚本。解压"yarn.tar.gz"后,用户可以探索YARN的内部结构,了解其工作原理,包括ResourceManager、NodeManager、ApplicationMaster...
【标签】"yarn学习"表明了这个资料包的主要内容是面向正在学习或希望深入理解YARN的用户。无论是初学者还是有经验的开发者,都能从中获得有价值的信息。 **YARN知识点详解:** 1. **YARN架构**:YARN将原本Hadoop ...
YARN(Yet Another Resource Negotiator)是Hadoop 2中引入的资源管理器,它负责管理和调度集群中的计算资源,以支持多种计算框架。在多租户企业级数据中心环境中,YARN通过动态资源池配置能够有效地隔离不同用户的...
在分布式计算领域,Apache Hadoop YARN(Yet Another Resource Negotiator)是核心组件之一,它作为资源管理系统,负责调度和管理Hadoop集群上的应用程序。在这个主题中,我们将深入探讨"Yarn编程ApplicationList",...