2.Spark与Hadoop的对比

上一篇文章—Spark概述:spark的概述

这篇文章主要是与MapReduce和Hadoop的名词对比

先从一张图了解下Spark和MapReduce的比较spark VS mr.jpg
再从一张图了解一下Spark的运行原理
5255ddb6-8b08-4524-b5a5-0e4bd53ff5aa-2500378.jpg

从这张图我们再进一步进行分析Spark和Hadoop的区别

Hadoop

1.一个MapReduce程序就是一个job,而一个job里面可以有一个或者多个task,task又可以区分为map task和reduce task
2.MapReduce中的每个task分别在自己的进程中运行,当该task运行完时,进程也就结束

Spark

Application

在Spark中,一个任务叫Application,也就是spark-submit提交的程序

Driver

完成任务的调度以及和executor和cluster manager进行协调
1.(驱动程序)是Spark的核心组件
2.构建SparkContext(Spark应用的入口,创建需要的变量,还包含集群的配置信息等)
3.将用户提交的job转换为DAG图
4.根据策略将DAG图划分为多个stage,根据分区从而生成一系列tasks
5.根据tasks要求要RM申请资源
6.提交任务并检测任务状态

Executor

1.每个Spark executor作为一个Yarn容器(container运行)
2.真正执行task的单元,一个节点上会包含多个container,一个container包含一个executor

Job

1.一个action算子就算一个job,例如count,first
2.每个action相当于一个阶段性的结束
3.由多个stage组成

Task

1.Spark中最小的执行单元,是一个线程
2.RDD一般是带有partitions的,每个partitions在一个executor上的执行可以认为是一个task

Stage

1.Stage是Spark独有的
2.一般而言一个Job会切换成一定数量的stage
3.各个stage之前按照顺序执行
4.对应一个taskset,一个stage是对task的包装,taskset对应一组关联的相互之间没有shuffle依赖关系的task组成
images
这里涉及到一个宽窄依赖的概念,窄依赖都是一对一的,比如stage1和stage2。宽依赖需要依赖前面其他节点的数据,比如stage3需要依赖stage1和stage2的数据。
其实stage表示一个阶段,内部有一些并发的数据处理,stage和stage之间有一定的数据依赖关系,stage可以理解成一个DAG有向无环图

下一章开始学习Spark Core相关的知识,敬请期待!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值