查看: 90|回复: 2

Spark运行状态的监控

[复制链接]
新浪微博达人勋 xenron  实名认证
论坛徽章:
218
OpenCV徽章
日期:2019-06-21 09:59:40python徽章
日期:2019-06-21 10:00:17
发表于 2019-6-3 06:42 | 显示全部楼层 |阅读模式

工具 Spark

Spark UI监控,有三个维度
对Spark运行时的状态进行监控可以对运行时间较长的大型任务运行过程心中有数,明白时间花费在什么地方,看任务在什么地方发生异常。首先说明Spark的一个application的划分规则。

job :job是application的组成单位。 A job is triggered by an action, like count() or saveAsTextFile(). Click on a job to see information about the stages of tasks inside it. 一个 job,就是由一个 rdd 的 action 触发的动作,可以简单的理解为,当你需要执行一个 rdd 的 action 的时候,会生成一个 job.
stage : stage 是 job 的组成单位,就是说,一个 job 会被切分成 1 个或 1 个以上的 stage,然后各个 stage 会按照执行顺序依次执行。job 根据Spark的shuffle过程来切分 stage,如某stage有2个shuffle过程,它就被切分成3个stage.
task : A unit of work within a stage, corresponding to one RDD partition。即 stage 下的一个任务执行单元。“一般来说,一个 rdd 有多少个 partition,就会有多少个 task,因为每一个 task 只是处理一个 partition 上的数据。”
对Spark的监控需求,可以按需划分为针对job的监控、针对stage的监控和针对task的监控,Spark UI提供了以下三种监控界面:

针对job的监控:每次查询都是一个Job,下图显示一个已经完成的查询任务和一个正在进行的查询任务,每一个任务的具体进度在行末展示




针对stage的监控:一个job里所有的stage列表



针对task的监控:一个stage里所有的task列表



每一种监控方式都能展示其每一步消耗的时间,可以通过Event Timeline的方式只管的看时间消耗。针对某一消耗时长异常的步骤进行检查或者调优。
这种监控方式的优点是直观易懂,而且大部分的表格可以用json的形式提供给其他应用,缺点是图形化的工具不易在其他界面上集成。
回复

使用道具 举报

论坛徽章:
0
发表于 2019-6-12 11:01 | 显示全部楼层
我们这边用的是CDH HADOOP5.7 spark job的监控见面直接通过cm进行访问,我记得sparksql的监控界面提供了task对应的sql语句,以及相关资源的使用情况,但是streaming的监控界面我没太研究明白,如何能够提高streaming的吞吐量
回复 支持 反对

使用道具 举报

论坛徽章:
35
树莓派
日期:2015-04-10 15:20:01python徽章
日期:2017-08-17 17:09:36python徽章
日期:2017-10-20 16:37:41区块链徽章
日期:2018-01-18 18:02:56金融徽章
日期:2018-03-01 16:43:15Hadoop研习者初级
日期:2018-03-29 16:08:43R研习者中级
日期:2018-04-26 15:27:36python徽章
日期:2018-06-21 17:15:38股票徽章
日期:2018-08-24 10:51:37计算徽章
日期:2018-09-21 16:51:47股票徽章
日期:2018-11-01 14:04:25股票徽章
日期:2019-01-10 14:04:57
发表于 2019-6-15 15:27 | 显示全部楼层
每一种监控方式都能展示其每一步消耗的时间,可以通过Event Timeline的方式只管的看时间消耗。针对某一消耗时长异常的步骤进行检查或者调优。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2019-6-24 21:58 , Processed in 0.144038 second(s), 36 queries .

关闭

扫一扫加入
本版微信群