Saprk 总结之执行流程简图(Client 模式)

本文详细介绍了Spark在Client模式下的执行流程,包括DAG的生成、Stage划分、Task调度等关键步骤,并通过实例展示了如何在Spark Shell中运行代码以及在Web端查看执行信息。通过对Spark与MapReduce的比较,突显了Spark在性能优化方面的优势。
摘要由CSDN通过智能技术生成

Saprk 总结之执行流程简图(Client 模式)

1. 背景

  1. Spark作为大数据分析处理引擎,本身大量参考了Mapreduce的设计思路.
  2. Spark作为分布式数据处理引擎,本身不存储数据,只是做数据分析.目前业界一般都是和hdfs结合起来,或者和hbase等结合起来,形成完整的数据存储和数据分析解决方案.
  3. 分布式数据处理技术,为了能够发挥分布式集群各个计算机的优势,主要会做两件事,一个是对要处理的数据做切分,一个是对要执行的代码做切分.否则就无法充分利用分布式集群的优势
  4. Mapreduce中,利用hdfs的数据切块,让各个节点分别处理各自的数据块.再把要处理的代码进行切分,划分为map和reduce阶段.map阶段,各个节点执行各自的map任务,读取各自的数据.reduce阶段也是一样.
  5. Spark也是类似的思想,但做了更高级的抽象,同时也对代码切分做了更好的设计.
  • Spark抽象出了数据集,如RDD,会把对数据要做的操作,要读取的数据源等信息存起来
  • Spark中设计了2中RDD算子,一种是tasnformation,一种是action. action算子才会触发真正的job生成和代码执行,transformation算子只是记录所需要处理的操作和数据来源.
  • 所有的RDD算子都不会真正保存数据,只是记录数据来源和针对数据所需要处理的操作.
  • 然后所有的RDD的操作都记录完毕之后,根据行动算子触发时机,生成一个job,再生成DAG有向无环图.
  • DAG中切分不同阶段,每个阶段都有各自的task需要处理,相同task阶段,要执行的代码逻辑是一样的,但处理的数据各个task会有差异.
  • 这样一来,就可以将数据切分,代码也做切分.整体设计和mapreduce类似,但做了更高层级的抽象(RDD),执行流程也做了更好的优化,使用DAG做整体规划,可以有更高效率的性能指标.类似SQL优化器一样,对整体SQL语句做优化.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值