spark指标性能分析

南墨2年前技术文章911

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


相关文章

Linux】项目自动化构建工具-make/Makefile 详解

Linux】项目自动化构建工具-make/Makefile 详解

 在Linux及类Unix系统中,自动化构建项目是提高开发效率、减少重复劳动的关键环节。make工具及其配置文件Makefile是实现这一目标的重要工具组合。它们通过定义一系列规则和依赖关系,自动执行...

Redis 内存使用情况查看

内存情况查看1、MEMORY STATS--连接 redisredis-cli--执行 MEMORY STATS命令查询内存使用详情 MEMORY STATSRedis实例的内存开销主要由两部分组成:...

hbase-auto balancer失效

hbase-auto balancer失效

背景集群中,发现hbase 的compaction 队列一直增长,出现hang住的情况,排查发现,一些表的region集中在某些机器上,分布不均匀。但是排查发现auto balancer是默认开启的。...

Linux 会话管理

Linux 会话管理

在 terminal 终端中输入命令,这种用户与计算机的临时交互称为一次会话(session)。会话的一个重要特点:与其中启动的进程是连在一起的,打开窗口、会话开始,关闭窗口、会话结束,会话内部的进程...

MySQL运维实战(4.7) SQL_MODE之ANSI_QUOTES

默认情况下,mysql使用反引号(`)作为标识符的引号。使用mysql关键字作为表名、字段名会报语法错误,这时可以加上反引号( `),避免报错。设置ANSI_QUOTES后,使用双引号(")...

MySQL运维实战之ProxySQL(9.7)改写SQL

使用查询修改功能,可以在不改变应用程序的情况下,修改SQL语句。比如,我们可以使用SQL改写的功能,给SQL添加hint,以此来优化性能。delete from mysql_que...

发表评论    

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