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
yarn-v1.22.5.tar.gz
2013-Apache Hadoop YARN_ Yet Another Resource Negotiator.pdf
rmstateutils 分析Hadoop Yarn Resource Manager状态存储的工具用法: 将存储库检出到系统中的目录。 CD到目录并运行mvn包成功构建之后,目标目录中应存在rmstateutils-1.0-SNAPSHOT-jar-with-dependencies.jar。 ...
从架构、设计模式和代码对Yarn进行的详细剖析和原理机制的分析
检测包装经理 这是如何运作的?...yarn add detect-package-manager 用法 const detectPackageManager = require ( 'detect-package-manager' ) detectPackageManager ( ) . then ( pm => { console . log
详细的描述了yarn的框架,对yarn的实现代码进行了详细的分析
Hadoop技术内幕深入解析YARN架构设计与实现原理
hadoop YARN应用开发与核心源码剖析
Hadoop 深入解析Yarn架构设计#学习resource manager:资源管理器container :监控容器map reduce1与yarn的比较Ya
Hortonworks Data Platform: YARN Resource Management
深入解析YARN架构设计与实现原理,深入解析YARN架构设计与实现原理深入解析YARN架构设计与实现原理深入解析YARN架构设计与实现原理
Yarn框架代码详细分析V0.3.pdf
分析yarn 资源调度的小demo,里面提供了几个接口,我们可以通过api从官方抓取applications 的信息,然后根据返回的json或者xml 放入到resource文件夹内,然后启动服务有一个http 的外部接口,调用该接口即可以产生相...
yarn-workspace-plugin-since
Ruby纱 这是用于访问的瑰宝,它基本上将其包装在rest-client和hashie中。... new ( 'http://resource-manager-host.example.com:8088/ws/v1' ) # nodes nodes = rm . nodes # nodes is an array of [Mashe
YARN配置、启动与验证 YARN配置、启动与验证 序号 任务名称 任务一 YARN组件参数配置 任务二 MapReduce组件参数配置 任务三 配置SSH无密钥登录(slave1为主节点) 任务四 分发YARN与MapReduce配置文件 任务五 启动...
Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码,或者分享自己的代码。 Yarn 做这些快捷、安全、可靠,所以你不用担心什么。 通过Yarn你可以使用其他开发者针对不同问题的解决方案,使...
Yarn是Yet Another Resource Negotiator的缩写,是Hadoop集群资源管理器系统。 定义: 一、什么是Yarn 一、什么是Yarn Yarn诞生背景,主要是由于Hadoop1.x架构中MapReduce的局限性,包括: 1、扩展性差: jobtracker...