监控 Apache Spark


Apache Spark- 概述

Apache Spark是为速度而建的开源大数据处理框架,内置了流、SQL、机器学习和图形处理模块。Apache Spark有一个高级DAG执行引擎,支持无循环数据流和内存计算。Spark运行在Hadoop,Mesos,standalone或者云中。它可以访问各种数据源,包括HDFS、Cassandra、HBase和S3。 

监控 Apache Spark  - 监控内容

让我们来看看您需要什么来获得Spark应用程序的实时操作可见性,要收集的性能指标,以及如何确保您的搜索服务器在Application Manager中正常启动和运行:

  • 资源利用详细信息 - Applications Manager自动发现您的Spark组件,并显示Apache Spark集群(master和worker节点)的关键指标,监控内存和CPU,并通知您内存池资源消耗的变化。
  • 实时数据 -通过集群跟踪每个组件上的垃圾回收和内存,特别是执行者和驱动程序。获取有关应用程序和核心的有用信息
  • 更快地解决性能问题 - 当出现性能问题时,获取即时通知。 意识到性能瓶颈,并在最终用户发现问题之前采取快速补救措施。

Apache Spark - 添加新的监视器

使用REST API添加新的Apache Spark监视器:点击此处

要创建Apache Spark监视器,请遵循下面给出的步骤: 

  • 点击 添加 监视器 链接。选择 Apache Spark
  • 指定 Apache Spark 监视器的显示名称
  • 输入Apache Spark Master运行的主机名称IP地址
  • 输入 Apache Spark Master端口。默认情况下为8080
  • 输入 轮询间隔 时间,单位为分钟。
  • 如果要测试对Spark服务器的访问权限,点击 测试凭证 按钮。
  • 从要与Spark 监视器关联的组合框中选择 业务组 (可选)。您可以选择多个组来关联您的监视器。
  • 点击 添加监视器。 这开始从网络中发现Spark并监控它。
注意:
在文件中取消下列文字SPARK_HOME/conf/metrics.properties.template 并将其保存为metrics.properties,并重新启动Apache Spark实例以收集指标:
master.source.jvm.class=org.apache.spark.metrics.source.JvmSource
worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource
driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource
executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource

您可以通过检查选项发现所有节点 来监控给定的Apache Spark Master下的Worker节点

监控的参数

点击监视器 选项卡,到监视器类别视图。点击Web 服务器/服务 表下的Apache Spark Master或Apache Spark Worker 监视器。显示的是分布在三个选项卡中的Apache Spark散装配置视图:

  • 可用性 选项卡  显示过去24小时或30天的可用性历史。
  • 性能选项卡显示过去24小时或30天的健康状况和事件。
  • 列表视图使您能够执行批量管理配置。

点击监视器名称,查看以下选项卡下列出的所有服务器详细信息:

Apache Spark Master

概述

参数 描述
节点详细信息
Node Name Apache Spark worker节点的名称。
Used Memory   (%) Spark worker节点在机器上使用的总内存百分比。
Free Memory (%) 机器上总空闲内存的百分比。
内存使用率
Used Memory Spark Master节点在机器上使用的总内存百分比。
Free Memory Spark Master节点的总空闲内存的百分比。
Total Memory 允许Spark应用程序在机器上使用的内存总量
Used Memory Spark应用程序使用的内存总量。
MASTER 概述
Alive Workers Spark集群的活跃的Workers数量。处于ALIVE状态的Worders可以接受应用。
Active Applications 运行在Spark基础设施上活跃的应用数量。
Waiting Applications 等待的应用数量。
Completed Applications 已完成应用的数量。
Used Cores Apache Spark Master上使用的CPU核数。

Workers

在独立模式下,workers是在单个节点上运行的进程,这些节点管理该节点的资源分配请求,并监控执行者。

特定Worker节点使用的CPU核数。

参数 描述
WORKER详细信息
Web UI Address Worker WebUI的URL。Web UI 是运行的Spark应用程序的Web接口,用于监控和检查Web浏览器中的Spark作业执行情况。
ID 特定worker节点的ID可以独特地识别他们。
Cores Used   
Cores Free 未使用的空闲CPU核心的数量。
Used Memory  (GB) Worker节点使用的总内存。
Free Memory   (GB) Worker节点中的总空闲内存。
Used Memory (%) Worker节点使用的内存百分比。
Time Since Last Heart Beat  (seconds) The time elapsed since last heart beat (i.e.) The last time when the Worker node contacted the Master Node.自上次心跳之后(即)。最后一次当Worker节点联系主节点时。
State Worker节点的当前状态,例如,继续存在或已完成。

应用程序

参数 描述
应用程序详细信息
Application Name 您应用程序的名称。
ID 应用程序由其ID引用。
User 与特定应用程序关联的用户。
Memory Allocated Per Slave  (GB) 分配给每个工作人员的内存量。
Running Duration  (分) 从应用程序启动后的总运行时间。
State 特定应用程序的当前状态,例如等待或运行

内存

Spark可以使用的最大堆内存。

参数 描述
堆内存
Used Heap 总使用堆内存的百分比。
Free Heap 空闲堆内存的百分比。
Max Heap Size
Init Heap Size 分配的最小堆内存。
Committed Heap Size 提交堆内存的总量。
Used Heap Size 总使用的堆内存。
非堆内存
Used Non Heap 总使用的非堆内存百分比。
Free Non Heap 空闲非堆内存的百分比。
Max Non Heap Size Spark可以使用的最大非堆内存。
Initial Non Heap Size 分配的最小非堆内存。
Committed Non Heap Size 提交非堆内存的总量。
Used Non Heap Size 总使用的非堆内存。
JVM  
Used JVM 使用JVM内存的数量,以MB为单位。
Free JVM JVM可用内存的数量,以MB为单位。
Max JVM Size 可用于内存管理的堆最大数量,以GB为单位
Initial JVM Size Java虚拟机最初从操作系统请求堆的数量,以MB为单位。
Committed JVM Size 提交JVM内存的总量。
Used JVM Size 使用的JVM内存总量。
MARKSWEEP 和 SCAVENGE
MarkSweep Count 在MarkSweep GC中发生了垃圾回收的次数。
MarkSweep Time 在MarkSweep GC中发生垃圾回收所花费的时间。
Scavenge Count Scavenge GC中发生垃圾回收的次数。
Scavenge Time Scavenge GC中发生垃圾回收所花费的时间。
内存池详细信息
Memory Pool 内存池名称
Maximum   (MB) 分配的最大池内存,以MB为单位。
Committed  (MB) 提交池内存的总量。
Initial   (MB) 池内存最初从操作系统的请求,以MB为单位。
Used   (MB) 使用的池内存总量。
Utilization  (%) 使用的池内存百分比。

RDD 详细信息

参数 描述
编辑细节
Compilation Time (Mean) 编译源代码文本所需的时间。
Compilation Count 在加载文件时发生的汇编总数。
汇编详细信息
Generated Class Size (Mean) 生成类中每个方法的大小。
Generated Method Size (Mean) 生成类中每个方法的大小。
Source Code Size (Mean) 编译源代码文本所需的时间。
Generated Class Count 生成的类数。
Generated Method Count 生成类中方法的数量。
Source Code Count 加载到节点进行编译的源代码文件总数。
计算器
File Cache Hits 发生的文件级缓存命中总数。
Files Discovered 发现的文件总数。
Hive Client Calls 发送到配置单元进行查询处理的客户端调用总数
Parallel Listing Job Count 并行运行的作业总数
Partitions Fetched 获取的分区总数

配置

参数 描述
配置详细信息
Master URL 主节点的URL。
Total Workers 集群中提供的Worker总数。
Available Cores 允许Spark应用程序在机器上使用的CPU核数。
Total Memory 分配给Spark 主节点的总内存。

Apache Spark Worker

概述

参数 描述
内存利用率
Used Memory Percentage Spark worker节点在机器上使用的总内存百分比。
Free Memory Percentage 机器上总空闲内存的百分比。
Used Memory Worker节点从可用内存中使用的总内存。
Free Memory Worker节点可用的总空闲内存。
WORKER概述
Active Executors 主动Executors的数量
Finished Executors 完成Executors的数量(Spark Executors在失败或相关应用程序退出时退出。)
Free Cores 空闲并且可供特定Worker使用的核心总数。
Used Cores 特定Worker使用的核心总数。

Executors

参数 描述
EXECUTOR详细信息
Executor ID 特定Executor的唯一ID。
Executor Memory   (GB) 特定Executor可用的总内存。
Application ID 与Executor关联的应用程序唯一的ID。
Application Name 特定应用程序的名称。
User 与特定应用程序关联的用户。
Memory Allocated Per Slave  (GB) 分配给每个Worker的内存量。

内存

参数 描述
堆内存
Used Heap 使用的堆内存的总百分比。
Free Heap 空闲的堆内存的总百分比。
Max Heap Size Spark可以使用的最大堆内存。
Init Heap Size 分配的最小堆内存。
Committed Heap Size 提交堆内存的总量。
Used Heap Size 总使用的堆内存。
非堆内存
Used Non Heap 使用的非堆内存总百分比。
Free Non Heap 空闲的非堆内存百分比。
Max Non Heap Size Spark可以使用的最大非堆内存。
Initial Non Heap Size 分配的最小非堆内存。
Committed Non Heap Size 提交的非堆内存的总量。
Used Non Heap Size 总使用的非堆内存。
JVM
Used JVM 使用JVM内存的数量,以MB为单位。
Free JVM JVM可用内存的数量,以MB为单位。
Max JVM Size 可用于内存管理堆的最大数量,以GB为单位。
Initial JVM Size Java虚拟机最初从操作系统请求堆的数量,以MB为单位。
Committed JVM Size 提交JVM内存的总量。
Used JVM Size 使用的JVM内存总量。
MARKSWEEP 和 SCAVENGE
MarkSweep Count 在MarkSweep GC中发生了垃圾回收的次数。
MarkSweep Time 在MarkSweep GC中发生垃圾回收所花费的时间。
Scavenge Count 在Scavenge GC中发生垃圾回收的次数。
Scavenge Time Scavenge GC中发生垃圾回收所花费的时间。
内存池详细信息
Maximum  (MB) 分配的最大池内存,以MB为单位。
Initial   (MB) 从操作系统请求的初始池内存,以MB为单位。
Committed   (MB) 提交池内存的总量。
Used  (MB) 使用的池内存总量。
Utilization  (%) 使用过的池内存的百分比。

RDD详细信息

参数 描述
汇编详细信息
Compilation Time (Mean) 编译源代码文本所需的时间。
Compilation Count 在加载文件时发生了总数汇编。
汇编详细信息系
Generated Class Size (Mean) 生成类的大小。
Generated Method Size (Mean) 生成类中每个方法的大小。
Source Code Size (Mean) 编译后源代码文本的大小。
Generated Class Count 生成类的数量。
Generated Method Count 生成类中方法的数量。
Source Code Count 加载到节点进行编译的源代码文件总数。
计算器
File Cache Hits 发生的文件级缓存命中总数。
Files Discovered 发现的文件总数。
Hive Client Calls 发送到配置单元进行查询处理的客户端调用总数
Parallel Listing Job Count 并行运行的作业总数
Partitions Fetched 获取的分区总数。

配置

参数 描述
配置详细信息
Worker ID Worker由其ID引用。
Master URL 主节点的URL。
Master Web UI URL 主节点的Web UI的URL。
Total Memory 为特定的Worker节点分配和可用的总内存。