监控 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节点分配和可用的总内存。 |