spark应用转换流程

  1. 构建Spark Application的运行环境。创建SparkContext后,SparkContext向资源管理器注册并申请资源。这里说的资源管理器有Standalone、Messos、YARN等。事实上,Spark和资源管理器关系不大,主要是能够获取Executor进程,并能保持相互通信。在SparkContext初始化过程中,Spark分别创建作业调度模块DAGScheduler和任务调度模块TaskScheduler(此例为Standalone模式下,在YARN-Client模式下任务调度模块为YarnClientClusterScheduler,在YARN-Cluster模式下为YarnClusterScheduler)。

  2. 资源管理器根据预先设定的算法,在资源池里分配合适的Executor运行资源。在运行过程中,Executor运行情况将随着心跳信息发送到资源管理器上。考虑到Spark Application运行过程中SparkContext和Executor之间有大量信息的交换,提交Spark Context的Client应该靠近Worker节点,以方便信息传输。

  3. SparkContext构建DAG图(Directed Acyclic Graph,有向无环图),作业调度模块DAGScheduler将DAG图分解成Stage。DAGScheduler决定了运行Task的理想位置,并把这些信息连同Task本身传递给下层的TaskSchduler。

  4. Executor向SparkContext申请Task,告诉SparkContext,“我已经准备好了,请给我分配任务吧”。

  5. TaskScheduler维护所有TaskSet,当Driver收到Executor心跳时,TaskScheduler会根据其资源剩余情况分配相应的Task到Executor运行,同时SparkContext将应用程序代码发送给Worker,随后Task便开始在Worker上运行。在此期间,TaskScheduler还维护着所有Task的运行状态,重试失败的Task。如果Task失败是因为Shuffle数据丢失而引起的,则DAGScheduler需要重新提交运行之前的Stage;如果Shuffle数据没有丢失,则交给TaskScheduler处理。

  6. 当Task运行结束后,反馈给SparkContext,并释放资源。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark的执行流程可以简单概括为以下几个步骤: 1. 创建SparkContext:Spark应用程序首先会创建一个SparkContext对象,它是与集群交互的主要入口点,并负责与集群管理器进行通信。 2. 定义并加载数据:在Spark应用程序中,您需要定义数据的来源,例如从文件系统、Hive表或其他外部数据源加载数据。Spark提供了各种API和工具来处理各种数据格式。 3. 转换操作:一旦数据加载完成,您可以使用Spark提供的转换操作来对数据进行处理和转换。这些转换操作包括过滤、映射、聚合等,可以根据您的需求对数据进行修改。 4. 缓存数据(可选):如果需要多次访问同一份数据,可以选择将其缓存到内存中,以加快后续的操作速度。缓存可以提高性能,但也需要考虑内存消耗。 5. 执行操作:一旦定义了转换操作,Spark会根据依赖关系图构建执行计划。Spark的执行是惰性的,只有在遇到动作操作时才会真正执行。动作操作包括对数据进行计数、收集、保存等。 6. 优化执行计划:在执行计划构建完成后,Spark会对执行计划进行优化,以提高查询性能。它会根据数据的特性和集群资源进行优化,并尽量减少数据的移动和网络传输。 7. 提交任务:一旦执行计划优化完成,Spark会将任务提交给集群管理器进行执行。集群管理器负责将任务分配到集群中的不同节点上,并协调任务的执行。 8. 监控和调优:在任务执行期间,您可以监控任务的进度和性能。通过监控工具和日志,您可以了解任务的执行情况,并进行调优以提高性能。 9. 获取结果:一旦任务执行完成,您可以获取执行结果,并根据需要进行后续的处理和分析。 这是一个简单的描述,实际上Spark的执行流程还涉及到许多细节和优化策略,但以上步骤可以帮助您理解Spark的基本执行流程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值