spark学习笔记二
来源:互联网 发布:深圳市在园儿童数据 编辑:程序博客网 时间:2024/04/29 15:01
1、Driver(核心是SparkContext)
1) SparkContext:创建DAGScheduler、TaskScheduler、SchedulerBackend,在实例化的过程中Register当前程序给Master、Master接受注册,如果没有问题,Master会为当前程序分配AppId并计算计算资源。
2) 一般情况下当通过action出发Job时SparkContext会通过DAGScheduler来把Job中的RDD构成的DAG划分成不同的Stage,每个Stage内部是一系列业务逻辑完全相同但是处理数据不同的Tasks,构成了TaskSet;TaskScheduler和SchedulerBackend负责具体Task的运行(遵循数据本地性)
2、Spark Cluster
1) Master:接受用户提交的程序并发送指令给Worker为当前程序分配计算资源,每个Worker所在节点默认为当前程序分配一个Executor,在Executor中通过线程池并发执行。
Master通知Worker按照要求启动Executor
2) Worker Node
Worker进程,通过一个Proxy为ExecuorRunner的对象实例来远程启动Executorbackend进程
ExecutorBackend进程,里面有Executor
实际在工作的时候会通过TaskRunner来封装Task,然后从ThreadPool中获取一条线程执行Task,执行完后线程被回收复用。
3、Task
最后一个Stage中Task称为ResultTask,产生Job的结果,其他前面的Stage中的Task都是ShuffleMapTask,为下一阶段的task做数据准备,相当于MapReduce中的Mapper。
4、过程
整个Spark程序的运行,就是DAGScheduler把Job划分成不同的Stage,提交TaskSet给TaskScheduler,进而提交给Executor执行(符合数据本地性),每个Task会计算RDD中的一个Partition,基于该Partition来具体执行我们定义的一系列同一个Stage内部的函数,以此类推。。直到整个程序完成。
Spark on yarn的过程:
Step1:Spark Yarn Client上传相关的Jar和资源到HDFS
Step2 : spark yarn client 向Resource Manager提交请求
Step3 :Resource Manager分配AppMaster 给Node Manager
Step4 :Node Manager 启动AppMaster
Step5 : AppMaster启动调度器DAG scheduler,同时向Resource Manager申请Container
Step6 :Resource Manager 分配Container给Node Manager
Step7 :Node Manager启动Container
Step8 :YarnClusterScheduler对 worker分配工作
Step9 : SparkWorker(Excecutor)从HDFS上读取分片数据
- spark学习笔记二
- Spark学习笔记二 RDD
- Spark学习笔记(二)
- Spark 学习笔记二开发环境
- Spark Core学习笔记(二)
- Spark (Python版) 学习笔记(二)
- spark学习笔记二:scala语言基础2
- (二)spark学习笔记-IDE以及部署
- Spark学习笔记(二)-弹性分布式数据集RDDs
- spark学习笔记之二:宽依赖和窄依赖
- spark学习笔记:Spark Streaming
- Spark学习笔记:初识Spark
- Spark学习笔记--Spark基础知识
- spark学习笔记:初识spark
- Apache Spark学习(二)
- Spark学习二
- 蜗龙徒行-Spark学习笔记【二】Spark shell下kmeans聚类算法的应用
- Apache Spark MLlib学习笔记(二)Spark RDD简介和基本操作
- struts2进阶【2】——类型转换
- Go语言(log4go介绍)
- 编写高性能的Lua代码
- 学习最新swift编程语言
- Android 图标上面添加提醒
- spark学习笔记二
- C总结-第三章 预处理(3/6)
- VB学习笔记——VB中Excel应用
- 什么是“引用”?申明和使用“引用”要注意哪些问题?
- csdn第一天
- 将“引用”作为函数参数有哪些特点?
- mybatis调用存储过程
- PL/SQL不能不学的快捷技能
- 转:行人检测(Pedestrian Detection)资源