YARN WebUI 服务

一、WebUI 使用

与HDFS一样,YARN也提供了一个WebUI服务,可以使用YARN Web用户界面监视群集队列应用程序服务流活动和节点信息。还可以查看集群详细配置信息,检查各种应用程序和服务的日志

1.1 首页

浏览器输入http://node2.itcast.cn:8088/访问YARN WebUI服务,页面打开后,以列表形式展示已经运行完成的各种应用程序,如MapReduce应用、Spark应用、Flink应用等,与点击页面左侧Application栏目红线框Applications链接显示的内容一致。

1.2 应用程序分析

当点击任意一个应用程序时,会打开一个新页面,并展示这个应用程序的运行信息。以MR应用为例,如果应用程序正在运行,打开的页面如图10-1-2所示;如果应用程序已经运行完成,打开的页面如下图所示。

  • 正在运行的MR应用程序

  • 运行完成的MR应用程序

二、HistoryServer 服务

YARN中提供了一个叫做JobHistoryServer的守护进程,它属于YARN集群的一项系统服务,仅存储已经运行完成的MapReduce应用程序的作业历史信息,并不会存储其他类型(如Spark、Flink等)应用程序的作业历史信息。

  • 当启用JobHistoryServer服务时,仍需要开启日志聚合功能,否则每个Container的运行日志是存储在NodeManager节点本地,查看日志时需要访问各个NodeManager节点,不利于统一管理和分析。
  • 当开启日志聚合功能后AM会自动收集每个Container的日志,并在应用程序完成后将这些日志移动到文件系统,例如HDFS。然后通过JHS的WebUI服务来提供用户使用和应用恢复。

2.1 启用 JHS 服务

在【mapred-site.xml】文件中配置指定JobHistoryServer服务地址和端口号,具体操作如下。

  • 编辑文件:

[root@node1 ~]# vim /export/server/hadoop/etc/hadoop/mapred-site.xml

  • 添加属性配置:

<property>

<name>mapreduce.jobhistory.address</name>

<value>node1.itcast.cn:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>node1.itcast.cn:19888</value>

</property>

<property>

<name>mapreduce.jobhistory.intermediate-done-dir</name>

<value>/mr-history/intermediate</value>

</property>

<property>

<name>mapreduce.jobhistory.done-dir</name>

<value>/mr-history/done</value>

</property>

  • 同步mapred-site.xml文件到集群其他机器,命令如下:

[root@node1 ~]# cd /export/server/hadoop/etc/hadoop

[root@node1 hadoop]# scp -r mapred-site.xml root@node2.itcast.cn:$PWD

[root@node1 hadoop]# scp -r mapred-site.xml root@node3.itcast.cn:$PWD

2.2 启用日志聚合

首先配置运行在YARN上应用的日志聚集功能,当应用运行完成,将日志相关信息上传至HDFS文件系统,编辑文件【yarn-site.xml】和添加属性配置。

  • 编辑文件:

[root@node1 ~]# vim /export/server/hadoop/etc/hadoop/yarn-site.xml

  • 添加属性配置:

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<property>

<name>yarn.nodemanager.remote-app-log-dir</name>

<value>/app-logs</value>

</property>

<property>

<name>yarn.log.server.url</name>

<value>http://node1.itcast.cn:19888/jobhistory/logs</value>

</property>

  • 同步yarn-site.xml文件到集群其他机器,命令如下:

[root@node1 ~]# cd /export/server/hadoop/etc/hadoop

[root@node1 hadoop]# scp -r yarn-site.xml root@node2.itcast.cn:$PWD

[root@node1 hadoop]# scp -r yarn-site.xml root@node3.itcast.cn:$PWD

2.3 启动 JHS 服务

在上述配置中指定的JHS服务位于【node1.itcast.cn】节点上,在【node1.itcast.cn】节点中启动JobHistoryServer服务。

  • 启动命令如下:

[root@node1 ~]# mr-jobhistory-daemon.sh start historyserver

  • 或者如下命令:

[root@node1 ~]# mapred --daemon start historyserver

  • 浏览器查看:http://node1.itcast.cn:19888/jobhistory

2.4 JHS 管理 MR 应用

当提交运行MapReduce程序在YARN上运行完成以后,将应用运行日志数据上传到HDFS上,此时JobHistoryServer服务可以从HDFS上读取运行信息,在WebUI进行展示,具体流程如下。

2.4.1 提交MR应用程序

使用yarn jar提交运行官方自带词频统计WordCount程序到YARN上运行,命令如下:

[root@node1 ~]# yarn jar \

/export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar \

wordcount \

/datas/input.data /datas/output

运行MR程序显示日志信息:

2021-02-25 19:13:43,059 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2

2021-02-25 19:13:43,278 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/root/.staging/job_1614243659295_0002

2021-02-25 19:13:43,518 INFO input.FileInputFormat: Total input files to process : 1

2021-02-25 19:13:43,619 INFO mapreduce.JobSubmitter: number of splits:1

2021-02-25 19:13:43,816 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1614243659295_0002

2021-02-25 19:13:43,818 INFO mapreduce.JobSubmitter: Executing with tokens: []

2021-02-25 19:13:44,007 INFO conf.Configuration: resource-types.xml not found

2021-02-25 19:13:44,008 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.

2021-02-25 19:13:44,077 INFO impl.YarnClientImpl: Submitted application application_1614243659295_0002

2021-02-25 19:13:44,136 INFO mapreduce.Job: The url to track the job: http://node3.itcast.cn:8088/proxy/application_1614243659295_0002/

2021-02-25 19:13:44,137 INFO mapreduce.Job: Running job: job_1614243659295_0002

2021-02-25 19:13:51,321 INFO mapreduce.Job: Job job_1614243659295_0002 running in uber mode : false

2021-02-25 19:13:51,322 INFO mapreduce.Job:  map 0% reduce 0%

2021-02-25 19:13:57,474 INFO mapreduce.Job:  map 100% reduce 0%

2021-02-25 19:14:02,544 INFO mapreduce.Job:  map 100% reduce 100%

2021-02-25 19:14:03,564 INFO mapreduce.Job: Job job_1614243659295_0002 completed successfully

2021-02-25 19:14:03,687 INFO mapreduce.Job: Counters: 53

        File System Counters

                FILE: Number of bytes read=65

                FILE: Number of bytes written=446779

                FILE: Number of read operations=0

                FILE: Number of large read operations=0

                FILE: Number of write operations=0

                HDFS: Number of bytes read=205

                HDFS: Number of bytes written=39

                HDFS: Number of read operations=8

                HDFS: Number of large read operations=0

                HDFS: Number of write operations=2

        Job Counters

                Launched map tasks=1

                Launched reduce tasks=1

                Data-local map tasks=1

                Total time spent by all maps in occupied slots (ms)=3439

                Total time spent by all reduces in occupied slots (ms)=3085

                Total time spent by all map tasks (ms)=3439

                Total time spent by all reduce tasks (ms)=3085

                Total vcore-milliseconds taken by all map tasks=3439

                Total vcore-milliseconds taken by all reduce tasks=3085

                Total megabyte-milliseconds taken by all map tasks=3521536

                Total megabyte-milliseconds taken by all reduce tasks=3159040

        Map-Reduce Framework

                Map input records=3

                Map output records=16

                Map output bytes=160

                Map output materialized bytes=65

                Input split bytes=109

                Combine input records=16

                Combine output records=5

                Reduce input groups=5

                Reduce shuffle bytes=65

                Reduce input records=5

                Reduce output records=5

                Spilled Records=10

                Shuffled Maps =1

                Failed Shuffles=0

                Merged Map outputs=1

                GC time elapsed (ms)=100

                CPU time spent (ms)=2170

                Physical memory (bytes) snapshot=506044416

                Virtual memory (bytes) snapshot=5578981376

                Total committed heap usage (bytes)=360185856

                Peak Map Physical memory (bytes)=280317952

                Peak Map Virtual memory (bytes)=2785366016

                Peak Reduce Physical memory (bytes)=225726464

                Peak Reduce Virtual memory (bytes)=2793615360

        Shuffle Errors

                BAD_ID=0

                CONNECTION=0

                IO_ERROR=0

                WRONG_LENGTH=0

                WRONG_MAP=0

                WRONG_REDUCE=0

        File Input Format Counters

                Bytes Read=96

        File Output Format Counters

                Bytes Written=39

2.4.2 MR运行历史信息

MR应用程序在运行时,是通过AM(MRAppMaster类)将日志写到HDFS中,会生成.jhist.summary_conf.xml文件。其中.jhist文件是MR程序的计数信息,.summary文件是作业的摘要信息,_conf.xml文件是MR程序的配置信息。

  • MR应用程序启动时的资源信息

MR应用程序启动时,会把作业信息存储到${yarn.app.mapreduce.am.staging-dir}/${user}/.staging/${job_id}目录下。

yarn.app.mapreduce.am.staging-dir:/tmp/hadoop-yarn/staging(默认)

  • MR应用程序运行完成时生成的信息

MR应用程序运行完成后,作业信息会被临时移动到${mapreduce.jobhistory.intermediate-done-dir}/${user}目录下。

mapreduce.jobhistory.intermediate-done-dir:/mr-history/intermediate(配置)

  • MR应用程序最终的作业信息

等待${mapreduce.jobhistory.move.interval-ms}配置项的值(默认180000毫秒=3分钟)后,会把${mapreduce.jobhistory.intermediate-done-dir}/${user}下的作业数据移动到${mapreduce.jobhistory.done-dir}/${year}/${month}/${day}/${serialPart}目录下。此时.summary文件会被删除,因为.jhist文件提供了更详细的作业历史信息。

JHS服务中的作业历史信息不是永久存储的,在默认情况下,作业历史清理程序默认按照86400000毫秒(一天)的频率去检查要删除的文件,只有在文件早于mapreduce.jobhistory.max-age-ms(一天)时才进行删除。JHS的历史文件的移动和删除操作由HistoryFileManager类完成。

mapreduce.jobhistory.intermediate-done-dir:/mr-history/intermediate(配置)

mapreduce.jobhistory.intermediate-done-dir:/mr-history/done(配置)

mapreduce.jobhistory.cleaner.enable: true(默认)

mapreduce.jobhistory.cleaner.interval-ms: 86400000(1天)

mapreduce.jobhistory.max-age-ms: 86400000(1天)

 

2.4.3 JHS 运行流程

  • 客户端提交MR应用程序到RM;
  • /tmp/logs/<user>/logs/application_timestamp_xxxx中创建应用程序文件夹;
  • MR作业在群集上的YARN中运行;
  • MR作业完成,在提交作业的作业客户上报告作业计数器;
  • 将计数器信息(.jhist文件)和job_conf.xml文件写入/user/history/done_intermediate/<user>/job_timestamp_xxxx
  • 然后将.jist文件和job_conf.xml从/user/history/done_intermediate/<user>/移动到/user/history/done目录下;
  • 来自每个NM的Container日志汇总到/tmp/logs/<用户ID>/logs/application_timestamp_xxxx;

2.5 JHS WebUI

JobHistoryServer服务WebUI界面相关说明:

2.5.1 首页

浏览器输入:http://node1.itcast.cn:19888 访问JHS服务,页面打开后,以列表形式展示已经运行完成的MR应用程序,与点击页面左侧Application栏目红线框jobs链接显示的内容一致。

2.5.2 JHS 构建说明

浏览器输入 http://node1.itcast.cn:19888/jobhistory/about 地址或者在点击页面左侧Application栏目下红线框about链接后会展示JHS服务的构建版本信息和启动时间。

2.5.3 MR应用程序查看

在JHS作业列表点击任意一个作业:

作业信息查看:

2.5.4 JHS 配置

浏览器输入 http://node1.itcast.cn:19888/conf  或点击页面左侧Tools栏目中的红线框configuration链接会打开JHS的所需配置页面,在配置页面中,主要有集群自定义配置(core-site.xml、hdfs-site.xml、yarn-site.xml和mapred-site.xml)和集群默认配置(core-default.xml、hdfs-default.xml、yarn-default.xml和mapred-default.xml)两种。配置页面中的配置项较多,截图为部分展示。

2.5.5 JHS 本地日志

浏览器输入 http://node1.itcast.cn:19888/logs/  地址或点击页面左侧Tools栏目中的红线框local logs链接会打开JHS服务的所在节点的log文件列表页面。​​​​​​​

2.5.6 JHS 堆栈信息

浏览日输入 http://node1.itcast.cn:19888/stacks  地址或点击页面左侧Tools栏目中的红线框Server stacks链接会打开JHS服务的堆栈转储信息。stacks功能会统计JHS服务的后台线程数、每个线程的运行状态和详情。这些线程有MoveIntermediateToDone线程、JHS的10020 RPC线程、JHS的10033 Admin接口线程、HDFS的StatisticsDataReferenceCleaner线程、JHS服务度量系统的计时器线程、DN的Socket输入流缓存线程和JvmPauseMonitor线程等。

三、TimelineServer 服务

由于Job History Server仅对MapReduce应用程序提供历史信息支持其他应用程序的历史信息需要分别提供单独的HistoryServer才能查询和检索。例如Spark的Application需要通过Spark自己提供的org.apache.spark.deploy.history.HistoryServer来解决应用历史信息。

为了解决这个问题,YARN新增了Timeline Server组件,以通用方式存储和检索应用程序当前和历史信息

到目前,有V1、V1.5和V2共三个版本,V1仅限于写入器/读取器和存储的单个实例,无法很好地扩展到小型群集之外;V2还处于alpha状态,所以在本章以V1.5进行讲解。

版本

说明

V1

基于LevelDB实现。

V1.5

在V1的基础上改进了扩展性。

V2

1.使用更具扩展性的分布式写入器体系结构和可扩展的后端存储。

2.将数据的收集(写入)与数据的提供(读取)分开。它使用分布式收集器,每个YARN应用程序实质上是一个收集器。读取器是专用于通过REST API服务查询的单独实例。

3.使用HBase作为主要的后备存储,因为Apache HBase可以很好地扩展到较大的大小,同时保持良好的读写响应时间。

4.支持在流级别汇总指标。

官方文档:

Apache Hadoop 3.1.4 – The YARN Timeline Server

Apache Hadoop 3.1.4 – The YARN Timeline Service v.2

YARN Timeline Service v.2 服务架构图如下:

3.1 启用 Timeline 服务

在【yarn-site.xml】配置文件中添加如下属性,启动Timeline Server服务功能:

<property>

<name>yarn.timeline-service.enabled</name>

<value>true</value>

</property>

<property>

<name>yarn.timeline-service.hostname</name>

<value>node2.itcast.cn</value>

<description>设置YARN Timeline服务地址</description>

</property>

<property>

<name>yarn.timeline-service.address</name>

<value>node2.itcast.cn:10200</value>

<description>设置YARN Timeline服务启动RPC服务器的地址,默认端口10200</description>

</property>

<property>

<name>yarn.timeline-service.webapp.address</name>

<value>node2.itcast.cn:8188</value>

<description>设置YARN Timeline服务WebUI地址</description>

</property>

<property>

<name>yarn.resourcemanager.system-metrics-publisher.enabled</name>

<value>true</value>

<description>设置RM是否发布信息到Timeline服务器</description>

</property>

<property>

<name>yarn.timeline-service.generic-application-history.enabled</name>

<value>true</value>

<description>设置是否Timelinehistory-servic中获取常规信息,如果为否,则是通过RM获取</description>

</property>

同步yarn-site.xml文件到集群其他机器,命令如下:

[root@node1 ~]# cd /export/server/hadoop/etc/hadoop

[root@node1 hadoop]# scp -r yarn-site.xml root@node2.itcast.cn:$PWD

[root@node1 hadoop]# scp -r yarn-site.xml root@node3.itcast.cn:$PWD

重启YARN服务,命令如下所示:

[root@node2 ~]# stop-yarn.sh

[root@node2 ~]# start-yarn.sh

​​​​​​​3.2 启动 Timeline 服务

在上述配置中指定的Timeline服务位于【node2.itcast.cn】节点上,需要在【node2.itcast.cn】节点的shell客户端中启动,如果在非【node2.itcast.cn】节点上启动时会报错。

启动命令如下:

[root@node2 ~]# yarn --daemon start timelineserver

在浏览器中输入:http://node2.itcast.cn:8188/applicationhistory

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/67791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

误差与误差限

目录 误差误差限小结 误差 设 x x x为准确值 , x ∗ ,x^* ,x∗为 x x x的一个近似值&#xff0c;称 e ∗ x ∗ − x e^*x^*-x e∗x∗−x为近似值的绝对误差&#xff0c;简称误差. 这样定义的误差 e ∗ e^{*} e∗可正可负&#xff0c;当绝对误差为正时近似值偏大&#xff0c;…

JavaSE——网络编程

一、InetAddress类 InetAddress是Java中用于封装IP地址的类。 获取本机的InetAddress对象&#xff1a; InetAddress localHost InetAddress.getLocalHost();根据指定的主机名获取InetAddress对象&#xff08;比如说域名&#xff09; InetAddress host InetAddress.getByNa…

互联网全景消息(10)之Kafka深度剖析(中)

一、深入应用 1.1 SpringBoot集成Kafka 引入对应的依赖。 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupI…

G1原理—3.G1是如何提升垃圾回收效率

大纲 1.G1为了提升GC的效率设计了哪些核心机制 2.G1中的记忆集是什么 3.G1中的位图和卡表 4.记忆集和卡表有什么关系 5.RSet记忆集是怎么更新的 6.DCQ机制的底层原理是怎样的 7.DCQS机制及GC线程对DCQ的处理 提升G1垃圾回收器GC效率的黑科技 G1设计了一套TLAB机制 快速…

Elastic-Job相关

文档参考视频&#xff1a;09_SpringBoot案例演示_哔哩哔哩_bilibili 一、Elastic-Job介绍 Elastic-Job 是一个轻量级、分布式的任务调度框架&#xff0c;旨在解决分布式环境下的定时任务调度问题。 1.1. Elastic-Job 的核心组件 Elastic-Job 是由多个核心组件构成的&#x…

Spring Boot3 配合ProxySQL实现对 MySQL 主从同步的读写分离和负载均衡

将 ProxySQL 配合 Spring Boot 使用&#xff0c;主要的目的是在 Spring Boot 应用程序中实现对 MySQL 主从同步的读写分离和负载均衡。这样&#xff0c;你可以利用 ProxySQL 自动将写操作路由到主库&#xff0c;而将读操作路由到从库。 1. 准备工作 确保你的 MySQL 主从同步环…

TypeScript语言的并发编程

TypeScript语言的并发编程 引言 随着现代应用程序的复杂性不断增加&#xff0c;性能和用户体验的重要性显得尤为突出。在这种背景下&#xff0c;并发编程应运而生&#xff0c;成为提升应用程序效率的重要手段。在JavaScript及其超集TypeScript中&#xff0c;尽管语言本身是单…

【Linux】设备驱动中的ioctl详解

在Linux设备驱动开发中&#xff0c;ioctl&#xff08;输入输出控制&#xff09;是一个非常重要的接口&#xff0c;用于用户空间应用程序与内核空间设备驱动之间进行通信。通过ioctl&#xff0c;应用程序可以发送命令给设备驱动&#xff0c;控制设备的行为或获取设备的状态信息。…

再次梳理ISP的大致流程

前言&#xff1a; 随着智能手机的普及&#xff0c;相机与我们的生活越来越紧密相关。在日常生活中&#xff0c;我们只需要轻轻按下手机上的拍照按钮&#xff0c;就能记录下美好时刻。那么问题来了&#xff1a;从我们指尖按下拍照按钮到一张色彩丰富的照片呈现在我们面前&#x…

基于R语言森林生态系统的结构、功能与稳定性

在生态学研究中&#xff0c;森林生态系统的结构、功能与稳定性是核心研究内容之一。这些方面不仅关系到森林动态变化和物种多样性&#xff0c;还直接影响森林提供的生态服务功能及其应对环境变化的能力。森林生态系统的结构主要包括物种组成、树种多样性、树木的空间分布与密度…

nacos学习笔记(一)

1.前言 何为nacos&#xff0c;nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。可以说集注册中心&#xff0c;配置中心&#xff0c;服务管理于一起的平台。注册中心&#xff1a;相当于我们可以把服务注册到注册中心上&#xff0c;我们以后可以通过服…

在Java中实现集合排序

使用字面量的方式创建一个集合 //使用字面量的方式初始化一个List集合List<User> userList Arrays.asList(new User("小A",5),new User("小鑫",18),new User("小昌",8),new User("小鑫",8));注意&#xff1a;使用Arrays.asLis…

logback日志

一、使用两个以上spring环境变量做三目操作 <springProperty name"application_name" scope"context" source"spring.application.name"/><springProperty name"trace_app_name" scope"context" source"sprin…

mysql和redis的最大连接数

平时我们要评估mysql和redis的最大连接数&#xff0c;可以选择好环境&#xff08;比如4核8G&#xff09;,定好压测方法&#xff08;没有索引的mysql单表&#xff0c;redis单key&#xff09;进行压测&#xff0c;评估其最大并发量。 也可以查看各大云厂商的规格进行评估。 mys…

QEMU通过OVS实现联网

这篇笔记也是记录了一下自己的辛酸历程&#xff0c;仅供有需要的人参考。 首先关于qemu虚拟机的搭建&#xff0c;这不多赘述了&#xff0c;大家应该都会&#xff0c;这里可以给大家提供一个链接和一些命令。 QEMU搭建X86_64 Ubuntu虚拟系统环境https://blog.csdn.net/m0_531…

seleniun 自动化程序,python编程 我监控 chrome debug数据后 ,怎么获取控制台的信息呢

python 好的&#xff0c;使用 Python 来监控 Chrome 的调试数据并获取控制台信息&#xff0c;可以使用 websocket-client 库来连接 Chrome 的 WebSocket 接口。以下是一个详细的示例&#xff1a; 1. 安装必要的库 首先&#xff0c;你需要安装 websocket-client 库。可以使用…

IT面试求职系列主题-Jenkins

想成功求职&#xff0c;必要的IT技能一样不能少&#xff0c;先说说Jenkins的必会知识吧。 1) 什么是Jenkins Jenkins 是一个用 Java 编写的开源持续集成工具。它跟踪版本控制系统&#xff0c;并在发生更改时启动和监视构建系统。 2&#xff09;Maven、Ant和Jenkins有什么区别…

WEBRTC前端播放 播放器组件封装

组件封装 <template><div><div class"option"><input v-model"useStun" type"checkbox" /><label for"use-stun">Use STUN server</label></div><button click"startPlay"&g…

(五)ROS通信编程——参数服务器

前言 参数服务器在ROS中主要用于实现不同节点之间的数据共享&#xff08;P2P&#xff09;。参数服务器相当于是独立于所有节点的一个公共容器&#xff0c;可以将数据存储在该容器中&#xff0c;被不同的节点调用&#xff0c;当然不同的节点也可以往其中存储数据&#xff0c;关…

攻防靶场(34):隐蔽的计划任务提权 Funbox1

目录 1. 侦查 1.1 收集目标网络信息&#xff1a;IP地址 1.2 主动扫描&#xff1a;扫描IP地址段 1.3 搜索目标网站 2. 初始访问 2.1 有效账户&#xff1a;默认账户 2.2 利用面向公众的应用 2.3 有效账户&#xff1a;默认账户 3. 权限提升 3.1 计划任务/作业&#xff1a;Cron 靶场…