Spark

术语解释

Application: 基于Spark用户,包含了Driver程序
在spark中,你启动了一个spark shell 就相当于一个application,以什么为基准呢,就是说,一个sparkContext,只要你有这个类,那么就说你有一个Application,但是在Spark shell中已经给你创建好了sc,

Driver: 运行main函数并且新建SparkContext

cluster Manager:在集群上获取额外资源的外部服务(eg: standlone,Mesos,Yarn)
Worker Node:集群中可以运行任何应用代码的节点

Executor:是在一个Worker Node上韦某一个应用启动的以个进程,该进程负责运行任务,并且负责将数据存在内存或者磁盘上,每个应用都有各自独立的Exexutor
不同的application 会对应不同的Executor,两个应用是应用在不同的JVM里面的,他们之间是相互隔离的。

Task:被送到Executor上的工作单元

Job:包含 多任务的并行计算,可以看做和Spark的action对应。
在hadoop中,你提交一个任务就叫一个job.包含。
在spark中,你只要做了有个action就算是一个job.
transform只会告诉元数据,我要做什么操作,在原数据里面它只会记录这个操作,不会真正去执行,到了action的时候,它才会真正的去执行。

Stage:一个job会被拆分很多组件任务,每组任务被称为stage(就像MR分为map任务和reduce任务一样)
一个Stage的边界:要么是从外部去取数据,sc.textFile("") 代表
一个stage的开始,
一个stage的结束:非常可能是由于要Shuffle,到Shuffle阶段了,比如A join B的时候,就要发生Shuffle,是要两个RDD去join,reduceByKey,当然一个Stage结束也可能 是任务结束了,比如要save到HDFS上或者count.

Spark运行流程:
Driver 创建了SparkContext程序,
Spark应用在集群上面其实就是运行一组独立的进程,这些进行都是由SparkContext来协调的,包含SparkContext的程序叫做DriverProgram,这个集群呢又可以通过SparkContext又可以通过集群连接到不同的Cluster Manager,不同的ClusterManager包括:standlone,Mesos,Yarn,就是说,你连接到这个ClusterManager之后,这个ClusterManager会为应用分配资源,一旦连接了以后,这个SparkContext会或者各个连接节点的Executor,每个应用都会有自己的Executor,这个Executor才是真正在Worker上运行的工作进程,他们会做一系列的事情,比如为你的应用计算,重组数据啊,然后其他一些工作都是Executor来做,在最后获取Executor以后,你的应用代码
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值