• spark ui的job数,stage数以及task数


    背景

    我们在查看spark ui的界面时,一段spark sql的执行经常看到会有对应有几个job,然后每个job又有几个stage,而每个stage又有好多个task,那么这些job,stage,task是怎么和spark 算子对应的呢

    算子和job数,stage数以及task数的对应关系

    1.Action算子,包含collect算子,saveAsTextFile算子,count算子,top算子,foreach算子等等,spark每遇到一个这种算子都会创建一个job
    2.shuffle算子,包含group by,join,distinct等算子,每个job划分多个stage时,就是按照shuffle算子的来进行划分stage的
    3.task算子,包括filter,map等算子,这些算子对应到每个task任务中并行执行

    比如如下代码:
    x = sc.parallelize([(“m”, 1), (“n”, 1)],2)
    y = sc.parallelize([(“m”, 1), (“n”, 1), (“o”, 1)], 3)
    rdd = x.join(y)
    rdd.collect()
    rdd.distinct().collect()

    这里总共有两个行动算子collect,所有有两个job
    job1:rdd.collect这个job有两个stage,第一个stage由shuffle的join操作:x.join(y)生成,共包含5个task(x有两个分区+y有3个分区),
    后面一个stage是collect,有五个task
    job2:rdd.distinct().collect() 这个job也是有两个stage,第一个stage有distict算子生成,共有5个task(和rdd的分区数一样),第二个stage由collect生成,也是5个task
    所以spark ui界面上总共有2个job,4个stage,20个task

    参考文献https://blog.csdn.net/guolindonggld/article/details/119974971

  • 相关阅读:
    CI/CD :Pipeline
    为 VitePress 网站添加 RSS 订阅支持
    Rust 构建跨平台 GUI 的新选择
    VirtualBox安装增强功能
    Xshell+screen解决ssh连接 服务器掉线的问题
    什么是闭包
    深入浅出计算机组成原理(四):存储
    数据结构与算法之美 复杂度分析(下)
    出行生态布局初显!魅族董事长沈子瑜:Flyme系统明年“上车”
    Java语言
  • 原文地址:https://blog.csdn.net/lixia0417mul2/article/details/136243439