spark指标性能分析

南墨1年前技术文章513

1)      Spark的性能指标

   任务启动后可以在yarn的原生页面看到对应的任务信息,点击ApplicationMaster

后可以跳转到spark原生页面查看任务信息。

1.png

job信息:

2.png

Executor信息:在启动命令中可以设置excutor的个数

3.png

具体每个批次的执行的数据量,延迟时间,处理时间等。

4.png

进入每个批次后,能够看到这个批次执行的具体数据,也就是具体消费了哪些数据;这些数据能够精确到具体的分区和具体的数据量。

5.png

2)      Spark的调优参数

l  并行度调优:如果每个批次消费正常,但是性能慢,可以增加消费并行度,并且增加kafka的分区数。

l  批次时间优化:修改以下客户端参数,提升批次的处理时间

参数

默认值

意义

spark.authenticate.enableSaslEncryption

false


spark.reducer.maxSizeInFlight

96MB


spark.shuffle.file.buffer

64KB


spark.authenticate

false


spark.network.sasl.serverAlwaysEncrypt

false


spark.shuffle.service.enabled

false


spark.streaming.kafka.consumer.poll.ms

0

Executor Consumer拉去一次数据的超时时间

l  Kafka消费端参数调优:

参数

默认值

意义

max.poll.records

500

Consumer一次拉取得数据量,调大该值能够提升一个消费线程的吞吐量,减少对kafka的请求数。

metadata.max.age.ms

30000ms

元数据更新时间,建议这个值不大于spark.streaming.kafka.consumer.poll.ms值的1/2

session.time.out

10000

组管理协议中判定consumer是否失效的超时时间,建议将这个值调整到30000以上

3)      问题排查流程

如果想查看具体是哪个task的问题,需要具体的分析一下task的日志信息。查看路径如下:

1.       找到具体的批次,例如:

1.png

2.       进入后,能够看到具体的jobID的执行时间

2.png

3.       选中其中的一个延时较长的job,点击进入后继续选择时间较长的Description

 

3.png

4.       进入后选择,对应的日志进行分析

4.png

5.       日志中能够反映出,每个Excutor consumer的配置文件信息,如下:

5.png

能够反映出每个task的执行间隔时间:

6.png

如果执行时间间隔较长,需要分析jstack信息。

6.       根据第4步中的Excutorid(图中为7),可以查看Tread dump信息,查看具体线程哪里有异常。

7.png


相关文章

MySQL优化器特性(六)表扫描成本计算

全表扫描成本使用optimizer_trace,或者使用explain format=tree, 或者explain format=json,可以查看查询的costmysql> exp...

scylladb集群如何添加新数据中心

1、信息收集· 收集现有集群信息cat /etc/scylla/scylla.yaml | grep cluster_namecat /etc/scylla/scylla.yaml | grep se...

开源大数据集群部署(八)Ranger编译部署

开源大数据集群部署(八)Ranger编译部署

在hd1.dtstack.com主机root权限下操作。1、 编译rangerranger二进制包编译过程在本次过程中不做详细说明。简单说明如下:Ø  在pom.xml中更改对应hadoop集群组件版...

Clickhouse冷热数据分离实践

配置多卷存储策略使用Clickhouse的存储策略功能,可以实现冷热数据分离存储。我们可以将业务上访问频繁的数据放到热存储区(如高性能SSD磁盘),将业务上较少访问的数据放在冷存储区(如价格更便宜、空...

MySQL 小版本升级

MySQL 小版本升级

MySQL 版本一般不需要经常升级,如果需要使用某个新特性或者修改 BUG 就不得不升级小版本。1. 环境调研当前数据库版本和需要升级到某个版本,如果升级需求 5.6.22+ 那么我们直接下载 5.6...

keycloak部署和使用

keycloak部署和使用

简介Keycloak是一个开源软件产品,旨在为现代的应用程序和服务,提供包含身份管理和访问管理功能的单点登录工具。截至2018年3月,红帽公司负责管理这一JBoss社区项目,并将其作为他们RH-SSO...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。