yarn logs -applicationid命令(yarn application status)

yarn logs -applicationid命令(yarn application status)Yarn 作为一款优秀的开源集群管理工具 可以用它来运行 Hadoop Spark Flink 等大数据处理任务 所有的分布式计算框架 都是主从模式 ResourceMana 作为集群的管理员 是任务提交的入口 一般企业的大数据处理平台会在 Yarn 的基础中做进一步的封装 以 web 应用的形式提供更高级的大数据处理平台 如果 web 应用通过 shell 的方式提交任务将显得太重 而且不利于任务状态的监控 幸好 Yarn 提供了 ResourceMana 的 REST API 可以很方便的向集群提交



Yarn作为一款优秀的开源集群管理工具,可以用它来运行Hadoop,Spark,Flink等大数据处理任务。所有的分布式计算框架,都是主从模式,ResourceManager作为集群的管理员,是任务提交的入口。一般企业的大数据处理平台会在Yarn的基础中做进一步的封装,以web应用的形式提供更高级的大数据处理平台。如果web应用通过shell的方式提交任务将显得太重,而且不利于任务状态的监控。幸好Yarn提供了ResourceManager的REST API,可以很方便的向集群提交、杀死任务或者监控任务的状态,本文将简要介绍ResourceManager REST API的使用方法。

先通过POST请求生成application_id再通过这个id来提交任务。

通过POST请求rm-http-address:port/ws/v1/cluster/apps/new-application,不需要参数,ResourceManager将返回application_id与集群可用资源配额,如下:

请求url


请求参数:无

返回数据


返回json字段说明

Item Data Type Description application-id string The newly created application id maximum-resource-capability object The maximum resource capabilities available on this cluster

maximum-resource-capability元素说明

Item Data Type Description memory int 容器可用的最大内存 vCores int 容器可用的最大核心数

提交应用程序API可用于提交应用程序。如果提交申请,则必须首先使用Cluster New Application API获得一个应用程序ID 。应用程序ID必须是请求正文的一部分。响应包含指向应用程序页面的URL,可用于跟踪应用程序的状态和进度。

通过POST请求rm-http-address:port/ws/v1/cluster/apps提交任务

请求url


请求参数


请求参数说明

Item Data Type Description application-id string 申请编号 application-name string 申请名称 queue string 应将应用程序提交到的队列的名称 priority int 应用程序的优先级 am-container-spec object 应用程序主容器启动上下文,如下所述 unmanaged-AM boolean 该应用程序是否使用非托管应用程序主机 max-app-attempts int 此应用程序的最大尝试次数 resource object 应用程序主机需要的资源,如下所述 application-type string 应用程序类型(MapReduce,Pig,Hive等) keep-containers-across-application-attmpts boolean YARN是否应保留此应用程序使用的容器而不是销毁它们 application-tags object 应用程序标签列表,请参阅有关如何指定标签的请求示例

am-container-spec对象的元素

应该使用am-container-spec对象为应用程序主机提供容器启动上下文。

Item Data Type Description local-resources object 描述需要本地化的资源的对象,如下所述 environment object 容器的环境变量,指定为键值对 commands object 用于启动容器的命令(应按执行顺序) service-data object 特定于应用程序的服务数据;key是辅助服务的名称,值是您希望传递的数据的base-64编码 credentials object 您的应用程序运行所需的凭据,如下所述 application-acls object 您的应用程序的ACLs;密钥可以是“ VIEW_APP”或“ MODIFY_APP”,值是具有权限的用户列表

local-resource对象的元素

Item Data Type Description resource string 要本地化的资源的位置 type string 资源类型;选项是“ ARCHIVE”,“ FILE”和“ PATTERN” visibility string 可见要本地化的资源;选项是“ PUBLIC”,“ PRIVATE”和“ APPLICATION” size long 要本地化的资源大小 timestamp long 要本地化的资源的时间戳

credentials对象的元素

Item Data Type Description tokens object 您希望传递给应用程序的令牌,指定为键值对。密钥是令牌的标识符,值是令牌(应使用相应的Web服务获取) secrets object 您希望在应用程序中使用的机密,指定为键值对。它们的键是标识符,值是密钥的base-64编码

resource对象的元素

Item Data Type Description memory int 每个容器所需的内存 vCores int 每个容器所需的虚拟核心

返回数据: 无

提交后ResourceManager不会返回信息。从请求的参数可以看出,如果想通过Yarn来管理某个分布式计算任务,必须有对应的ApplicationMaser实现,如上例中的AppMaster.jar,其执行入口类为org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster。常见的分布式计算任务如Hadoop、Spark与Flink都有,但Flink-yarn项目对Flink 1.9貌似还 没有实现对应的ApplicationMaster,所以Flink 1.9的任务目前还不能通过Rest API提交(1.7可以)。

通过GET请求rm-http-address:port/ws/v1/cluster/apps将获取到所有任务的信息列表,如

请求url


请求参数(可选)

可以为GET操作指定多个参数。开始时间和结束时间都有一个begin和end参数,以允许您指定范围。例如,可以请求在2021年3月2日早上09:00:00和早上10:00:00之间启动的所有应用程序,其中startedTimeBegin = 1614646800000&startedTimeEnd = 1614650400000。如果未指定Begin参数,则默认为0;如果未指定End参数,则默认为无穷大。


返回数据


字段说明

Item DataType Description id string 应用的application-id user string 提交任务的用户名 name string 应用程序的名称 queue string 应用程序所属消息队列 state string 应用程序当前状态 finalStatus string 应用程序最终状态 progress double 应用程序进度 trackingUI string 追踪UI显示名称 trackingUrl string 追踪UI的url clusterId string 集群id applicationType string 应用程序类型 priority int 应用程序优先级 startedTime long 应用程序开始时间 launchTime long 应用程序加载时间 finishedTime long 应用程序完成时间 elapsedTime long 应用程序消耗时间(finished-start) amContainerLogs string am容器日志地址 amHostHttpAddress string am的主机http地址 amRPCAddress string am的RPC地址 allocatedMB string 初始化内存大小 allocatedVCores string 初始化核心数 reservedMB string 保留内存 reservedVCores string 保留核心数 runningContainers string 正在运行的容器数 memorySeconds int 所有的container每秒消耗的内存总和 vcoreSecond string 所有的container每秒消耗的核心数总和 queueUsagePercentage double 所属队列的资源使用百分比 clusterUsagePercentage double 所属集群的资源使用百分比 logAggregationStatus string 日志聚合状态 unmanagedApplication boolean 未被管理的应用程序

通过GET请求rm-http-address:port/ws/v1/cluster/apps/{appid},如




通过Cluster Application State API来完成,当然需要得到RM web service的授权才能进行这种操作,URI为rm-http-address:port/ws/v1/cluster/apps/{appid}/state,如

通过GET请求该URI


将返回的application_id为application_1613349389113_0001的任务的状态


然会参数列举说明

Item Data Type Description state string The application state - can be one of “NEW”, “NEW_SAVING”, “SUBMITTED”, “ACCEPTED”, “RUNNING”, “FINISHED”, “FAILED”, “KILLED”

或者通过PUT请求来kill一个job



返回结果为


其实的state的状态为当前程序的状态【RUNNING, ACCEPTED】

重新通过GET请求该任务的状态

发现该任务已经被kill了



主要通过访问rm-http-address:port/ws/v1/cluster/apps/{appid}/priority来完成。统一需要得到RM web services的授权

通过GET请求上面的URI,如


将返回application_id为application_1613349389113_0001的任务的优先级



如果这项任务非常重要,你想让它优先执行,可通过PUT请求来修改其优先级




主要通过GET请求访问rm-http-address:port/ws/v1/cluster来完成。

通过GET请求上面的URI,如


请求参数: 无

返回数据


返回数据字段说明

Item Data Type Description id long 集群ID startedOn long 集群启动的时间(从纪元开始以毫秒为单位) state string ResourceManager状态-有效值为:NOTINITED,INITED,STARTED,STOPPED haState string ResourceManager HA状态-有效值为:INITIALIZING,ACTIVE,STANDBY,STOPPED rmStateStoreName string 实现ResourceManager状态存储的类的完全限定名称 resourceManagerVersion string ResourceManager的版本 resourceManagerBuildVersion string ResourceManager构建字符串以及构建版本,用户和校验和 resourceManagerVersionBuiltOn string 生成ResourceManager的时间戳(自纪元以来以毫秒为单位) hadoopVersion string Hadoop通用版本 hadoopBuildVersion string 具有构建版本,用户和校验和的Hadoop通用构建字符串 hadoopVersionBuiltOn string 建立hadoop common的时间戳(自纪元以来以毫秒为单位) haZooKeeperConnectionState string ZooKeeper高可用性服务的连接状态

通过GET请求rm-http-address:port/ws/v1/cluster/metrics来完成。

通过GET请求上面URI,如


请求参数: 无

返回数据


返回数据字段说明

Item Data Type Description appsSubmitted int 提交的应用程序数量 appsCompleted int 完成的应用程序数量 appsPending int 等待的应用程序数量 appsRunning int 正在运行的应用程序数量 appsFailed int 失败的应用程序数量 appsKilled int 被杀死的应用程序数量 reservedMB long 保留的内存量(MB) availableMB long 可用的内存量(MB) allocatedMB long 分配的内存量(MB) totalMB long 总内存量(MB) reservedVirtualCores long 保留的虚拟核心数 availableVirtualCores long 可用虚拟核心数 allocatedVirtualCores long 分配的虚拟核心数 totalVirtualCores long 虚拟核心总数 containersAllocated int 分配的容器数 containersReserved int 保留的容器数 containersPending int 待处理的容器数 totalNodes int 节点总数 activeNodes int 活动节点数 lostNodes int 丢失的节点数 unhealthyNodes int 不良节点数 decommissioningNodes int 停用的节点数 decommissionedNodes int 退役的节点数 rebootedNodes int 重新启动的节点数 shutdownNodes int 关闭的节点数

调度程序资源包含有关集群中配置的当前调度程序的信息。它目前支持Fifo,容量和公平调度程序。根据配置哪个调度程序,您将获得不同的信息,因此请务必查看类型信息。

请求URI


请求参数: 无

返回数据



使用应用程序尝试API,您可以获得代表应用程序尝试的资源的集合。在此资源上运行GET操作时,将获得App Attempt对象的集合。

请求URI


请求参数: 无

返回数据


Item Data Type Description id string 应用尝试ID nodeId string 尝试运行的节点的节点ID nodeHttpAddress string 尝试运行的节点的节点http地址 logsLink string 应用程序尝试日志的http链接 containerId string 应用尝试容器的ID startTime long 尝试的开始时间(自纪元以来以毫秒为单位)
编程小号
上一篇 2025-02-26 07:17
下一篇 2025-02-10 13:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/52501.html