在 Yarn 的 UI 页面你能够看到什么?

前言

前面咱们说了Yarn 是一个资源调度平台,负责为运算程序提供服务器计算资源,方便咱们编写的 Spark、flink、MapReduce 这些应用在它上面运行。若是还不知道它是什么的,请移步《Apache Hadoop YARN 的架构与运行流程》。node

那么咱们有木有办法看到 Yarn机器有多少资源呢?内存呀,CPU呀什么的。 咱们提交到 Yarn的这些应用,它们的运行状态是什么样子的,占用了多少资源,到底哪些机器在为他们跑任务呢?centos

答案是确定的,不止命令行,还有可视化的 UI 页面。下面咱们就来看看到底长什么样子,都有什么。服务器

集群信息

about 菜单里面能够看到 Yarn 的 ResourceManager 的状态,是不是HA,它的版本和Hadoop 的版本信息。session

主页

记得以前本身在搭建 Hadoop 集群的时候,把 Yarn 这个页面整出来的时候不知道有多兴奋,其实就长这样子。架构

集群监控信息

第一块区域,是整个集群的监控信息:app

  • Apps Submitted:已提交的应用,咱们这里是71万多
  • Apps Completed:已完成的应用
  • Apps Running:正在运行的应用
  • Containers Running:正在运行的容器
  • Memory Total:集群总内存
  • Memory Used:已使用内存
  • VCores Total:集群 CPU 总核数
  • VCores Used:已使用的 CPU 核数
  • Memory Reserved:预留的内存
  • VCores Reserved:预留的 CPU 核数

说明:框架

  1. Containers Running:正在运行的容器,为何会有这个说法,是由于 Yarn 在运行任务以前,会先建立一个容器来跑。具体的原理,请看上面连接的文章。
  2. VCores Reserved 和 Memory Reserved: 为何会存在预留的状况?是由于 Yarn 为了防止在分配一个容器到 NodeManager 的时候,,NodeManager当前还不能知足,那么 如今 NodeManager 已经有的资源将被冻结,以达到 容器须要的标准,而后分给那个容器。关于这个问答能够看这篇文章What is Memory reserved on Yarn

集群节点信息

第二块区域是 Yarn 的集群节点的状况,从 Active Nodes 下面的数字点击进去,能够看到具体的节点列表信息。里面包含了所在机架、运行状态、节点地址、最后健康上报上报时间、运行的容器个数、使用内存CPU 等信息,还有版本号。以下图。运维

应用列表信息

第三块内容是在 Yarn 上的任务执行状况列表:oop

包括如下内容:ui

  1. 第一块,能够根据任务的不一样状态去筛选,上图是筛选正在运行的任务。一搬来讲,咱们就看正在运行(RUNNING)的,和已经运行完成的(FINISHED)。若是你发现没你的任务了,那么可能在已接受( ACCEPTED)尚未运行的状态中,若是还找不到不到,那么恭喜你,可能有问题,跑失败了在失败(FAILED)里面,这时候,你就可点击任务ID,去详情页里面,找到日志入口去查看日志了,找问题了。
  2. 第二块,是任务的ID,这没什么好说的,你能够细心的看一下他的生成规则。
  3. 第三块,是任务的名字,能够看到图中有按类名的,他是咱们本身提交的spark 任务的主类名。另一类是 hive on spark ,这类的名称实际上是跑的 hive 的脚本,知识咱们 hive 的执行引擎是 spark。还有一类是 MapReduce 任务,这里的 MapReduce 任务,可不是咱们真正用 MapReduce 去写的代码哈,只是咱们有用 sqoop 进行数据的抽取。它底层是 MapReduce 。还有一类是 Flink 任务,会显示 Flink session cluster,只是咱们如今尚未用。
  4. 第四块是应用的类型和所在队列,常见的类型有 spark 、mapreduce和Apache Flink 。所在队列,你们能够回想一下在说 yarn 的架构的时候,咱们提交到 yarn 的任务,他会放到队列里面去,这个队列有默认的,有能够本身在提交时经过 --queue 进行指定的。若是咱们没有制定,那么它会以你提交任务的时候使用的那个帐户来进行提交,好比我这里就是 centos 的用户,显示则显示成 root.users.centos。
  5. 第五块,是任务的开始和结束时间。
  6. 第六块是任务当前的状态和最终状态。
  7. 第七块是任务占用的相关资源。
  8. 第八块是任务的应用类型主页。若是是 spark 任务的话,显示的是 spark 的 ui 页面。

应用详情页

在任务列表,点击 app ID 会来到这个应用的详情页:

查看应用日志

从应用详情页 ApplicationMaster 中,点击 最右边 log ,能够进入到应用的日志页面,日志记录了两部分,一部分是你的应用运行框架打印的日志,好比spark ,另一部分是你编写的代码中打印的日志。point 打印的日志都会记录。以下图:

进入到应用框架的监控UI页面

在详情页中,能够点击 Tracking URL 中提供 ApplicationMaster 连接,或者在在应用列表也中也能够,进入到 任务的运行框架UI页面,下面以spark 为例:

查看 yarn 的队列

在主页还有一个调度(Scheduler)的菜单,里面能够看到 yarn 的队列信息。包含了有哪些队列、每一个队列的资源使用状况、哪些任务运行在这个队列中等等。

Yarn 的日志

日常若是咱们发现Yarn 有些问题,那么咱们能够去看到 Yarn 的日志,在 左侧菜单 Tools->Local logs 里面咱们能够看到 Yarn 的日志信息:

Yarn 的服务监控

在CDH 中实际上是对Yarn 有资源监控的,若是你没有使用CDH 这些,只有本身搭建的 Yarn 集群,那么 Yarn 也提供了监控时间获取方式,在左侧菜单 Tools -> Server metrics 里面,咱们能够看到 以下数据,只是是 Json 数据。访问地址:http://journalnode1:8088/jmx?qry=Hadoop:*

拿到这个数据,你也能够写一个页面来可视化的展现它,给你们看一下 CDH 对于Yarn 的部分监控:

最后

在 Tools 菜单栏中还有 Yarn 的配置信息和 服务当前的堆栈信息,有兴趣的去研究一下。

以上,是Yarn 的UI 界面的介绍,后面给你们带来日常咱们使用 Yarn 的运维命令和它提供的 RestAPI。

相关文章
相关标签/搜索