zoukankan      html  css  js  c++  java
  • 【Spark工作原理】stage划分原理理解

    Job->Stage->Task
    开发完一个应用以后,把这个应用提交到Spark集群,这个应用叫Application。这个应用里面开发了很多代码,这些代码里面凡是遇到一个action操作,就会产生一个job任务。

    一个Application有一个或多个job任务。job任务被DAGScheduler划分为不同stage去执行,stage是一组Task任务。Task分别计算每个分区partition上的数据,Task数量=分区partition数量。

    Spark如何划分Stage
    会从执行action的最后一个RDD开始向前推,首先为最后一个RDD创建一个stage,向前遇到某个RDD是宽依赖,再划分一个stage。如下图,从宽依赖处划分为2个stage。

    原理的应用场景:
    1.通过监控界面上每个stage及其内部task运行情况,找到对应的代码段做性能调优。

    2.指定RDD的分区数参数,实际也调整了task的数量,在数据量较大时适当调整增加并行度。

  • 相关阅读:
    最小路径
    零钱兑换
    硬币
    三步问题
    区域和检索
    除数博弈
    URI和URL的辨别
    交叉编译OpenMP
    牛客挑战赛44D-数列的和
    CF1408H. Rainbow Triples
  • 原文地址:https://www.cnblogs.com/wwcom123/p/10492731.html
Copyright © 2011-2022 走看看