Spark修炼之道(进阶篇)——Spark入门到精通:第七节 Spark运行原理

  • 时间:
  • 浏览:0

在执行过程中,能不需要 通过http://192.168.1.103:4040查看任务情况,192.168.1.103为sparkmaster IP地址:

spark-submit提交Spark应用多多任务管理器 后,其执行流程如下:

1 创建SparkContext对象,后后SparkContext会向Clutser Manager(集群资源管理器),类式Yarn、Standalone、Mesos等申请资源

2 资源管理器在worker node上创建executor并分配资源(CPU、内存等),后期excutor会定时向资源管理器发送心跳信息

3 SparkContext启动DAGScheduler,将提交的作业(job)转加带若干Stage,各Stage构成DAG(Directed Acyclic Graph有向无环图),各个Stage饱含若干相task,那先 task的集合被称为TaskSet

4 TaskSet发送给TaskSet Scheduler,TaskSet Scheduler将Task发送给对应的Executor,一齐SparkContext将应用多多任务管理器 代码发送到Executor,从而启动任务的执行

5 Executor执行Task,完成后释放相应的资源。



图片来源:http://blog.csdn.net/yirenboy/article/details/47441465

图中的实线空心矩形代表有有另一个 RDD,实线空心矩形中的带阴影的小矩形表示分区(partition)。从上图中能不需要 想看 , map,filter、union等transformation操作后的RDD仅依赖于父RDD的固定分区,它们是窄依赖的;而groupByKey后的RDD的分区与父RDD所有的分区也有依赖关系,此时它们本来我宽依赖的。join操作位于并也有情况,后后分区仅仅依赖于父RDD的某一分区,则是窄依赖的,后后本来我宽依赖。



图片来源:http://blog.csdn.net/yirenboy/article/details/47441465

在spark-master上,启动spark-shell



图片来源:http://blog.csdn.net/book_mmicky/article/details/25714419,

用户编写完Spark应用多多任务管理器 后后,前要将应用多多任务管理器 提交到集群中运行,提交时使用脚本spark-submit进行,spark-submit能不需要 带多种参数,参数选项能不需要 通过下列命令查看

下图给出了DAGScheduler的工作原理:

点击stage 1 对应的的map,查看该stage中对应的task信息及在对应的executor上的执行情况:

打开浏览器,输入: http://sparkmaster:4040/,并点击executors,能不需要 查看集群中所有的executor,如下图所示



从图中能不需要 想看 sparkmaster除了是有有另一个 executor之外,它还是有有另一个 driver即(standalone clinet模式)

//Yarn Client运行效果图

下面介绍几种常用Spark应用多多任务管理器 提交辦法 :

作者:周志湖

网名:摇摆少年梦

微信号:zhouzhihubeyond

在前面讲的Spark编程模型当中,一些人 对RDD中的常用transformation与action 函数进行了讲解,一些人 提到RDD经过transformation操作也有生成新的RDD,前有有另一个 RDD与tranformation操作后的RDD构成了lineage关系,也即后有有另一个 RDD与前有有另一个 RDD位于一定的依赖关系,根据tranformation操作后RDD与父RDD中的分区对应关系,能不需要 将依赖分为并也有:宽依赖(wide dependency)和窄依赖(narrow dependency),如下图所示:

采用Spark自带的资源管理器进行集群资源管理

能不需要 想看 ,spark-submit提交参数如下:

前面一些人 提到各Stage由若干个task组成,那先 task构建taskset,最终交给Task Scheduler进行调度,最终将task发送到executor上执行,如下图所示 。

采用Yarn作为底层资源管理器

不需要 不需要 指定为cluster deploy mode,类式:

本节内容及每段图片来自:

http://blog.csdn.net/book_mmicky/article/details/25714419

http://blog.csdn.net/yirenboy/article/details/47441465

这两篇文件对Spark的运行架构原理进行了比较深入的讲解,写得非常好,建议一些人 认真看一下,在此向作者致敬!

当RDDG触发相应的action操作(如collect)后,DAGScheduler会根据多多任务管理器 中的transformation类型构造相应的DAG并生成相应的stage,所有窄依赖构成有有另一个 stage,而单个宽依赖会生成相应的stage。上图中的黑色矩形表示那先 RDD被缓存过,后后上图中的只前要计算stage2、 stage3即可

与 clinet deploy mode不同的是 cluster deploy mode中的SparkContext在集群组织组织结构创建。