Spark 推测执行(speculative)

一  speculative简介

在spark作业运行中,一个spark作业会构成一个DAG调度图,一个DAG又切分成多个stage,一个stage由多个Tesk组成,一个stage里面的不同task的执行时间可能不一样,有的task很快就执行完成了,而有的可能执行很长一段时间也没有完成。造成这种情况的原因可能是集群内机器的配置性能不同、网络波动、或者是由于数据倾斜引起的。而推测执行(speculative)就是当出现同一个stage里面有task长时间完成不了任务,spark就会在不同的executor上再启动一个task来跑这个任务,然后看哪个task先完成,就取该task的结果,并kill掉另一个task。其实对于集群内有不同性能的机器开启这个功能是比较有用的。

二 如何在spark中启动speculative

1,在spark-env.sh里设置

       spark.speculation=true # 这样会作用到所有spark任务

2,在代码里通过sparkConf设置

   conf.set("spark.speculation", true)

3,在用spark sql时

spark.sql("set  spark.speculation = true")

4,map和reduce可以分开设置

sqlContext.sql("set mapreduce.map.speculative = true")

sqlContext.sql("set mapreduce.reduce.speculative = true")

三 speculative 运行机制

1, 监控Slow Task(Straggler Task)

spark程序运行时,会在TaskSchedulerImpl类中启动一个独立的线程池(task-scheduler-speculation)每100ms检查一次所有Task中是否有Slow Task.

2, Straggler Task衡量指标

如下图所示,在Spark调度作业中,DAGScheduler会将每个Stage中的Task封装到TaskSet,并将TaskSet交给TaskScheduler,TaskScheduler 会按顺序将Task发给Executor,并由Executor端执行这些Task。在这些Task计算过程中,Driver端如何衡量哪些Task是Straggler Task(TaskSet中所有的Task都是并行计算,在不同的Executor中计算),这个衡量过程Spark称为Speculative Task,符合Speculative Task的Task,Spark 称为Straggler Task.


相关参数

spark.speculation.interval 100:检测周期,单位毫秒

spark.speculation.quantile 0.75:完成task的百分比

spark.speculation.multiplier 1.5:时间比例


spark.speculation.interval 参数的意思是设置检测周期,默认100毫秒检测一次是否执行推测执行。

spark.speculation.quantile 参数的意思是同一个stage里面有task完成的百分比,默认为75%。

spark.speculation.multiplier 这个参数是一个时间比例。意思是当task完成了75%的时候,取完成了的task的执行时间的中位数,再乘以这个时间比例,默认为1.5。当未完成的task的执行时间超过了这个乘积值,就开启推测执行。


现存问题:

    在分布式环境中导致某个Task执行缓慢的情况有很多,负载不均、程序bug、资源不均、数据倾斜等,而且这些情况在分布式任务计算环境中是常态。Speculative Task这种以空间换时间的思路对计算资源是种压榨,同时如果Speculative Task本身也变成了Slow Task会导致情况进一步恶化。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,688评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,559评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,749评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,581评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,741评论 3 271
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,684评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,122评论 2 292
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,847评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,441评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,939评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,333评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,783评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,275评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,830评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,444评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,553评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,618评论 2 249

推荐阅读更多精彩内容

  • 如果梦想有颜色, 它可能是红色,红色象征着燃烧的激情和希望; 它可能是蓝色,蓝色象征着大海和蓝天,清新宁静却充满了...
    如意_dd46阅读 1,086评论 0 6
  • 今天在运行学院做了一回主持人。 中午时分,开场预热欠缺,开场与前一个主持人相似,不能引起大家的兴趣。 回到小组里说...
    盛娟Sanny阅读 474评论 0 0
  • 我有十分严重的焦虑症,直到现在,它也一直是我的心头大患。在与焦虑长达十年的相处中,我总结了一些对抗它的自身经验,虽...
    柠檬胡萝卜阅读 745评论 5 10
  • 写于感恩节 2016年10月31日在朋友圈发起一个话题,本想着两个小时之后回复,但是手机却坏掉了……等到思路清晰的...
    邹璟昱阅读 393评论 4 2