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的数量,在数据量较大时适当调整增加并行度。

  • 相关阅读:
    NSUserDefaults写作和阅读对象定义自己
    JavaScript三在弹出的对话框中
    mybatis02 架构
    mybatis01
    oracle17 视图
    oracle16 例外
    oracle15 pl/sql 分页
    oracle14 复杂数据类型
    oracle13 触发器 变量
    oracle12 pl/sql
  • 原文地址:https://www.cnblogs.com/wwcom123/p/10492731.html
Copyright © 2011-2022 走看看