spark入门介绍

来源:互联网 发布:网络切换app 编辑:程序博客网 时间:2024/06/05 16:24

1  what is spark

Apache基金会顶级项目

基于内存计算的大数据并行计算框架

中间数据存放到内存,迭代效率更高

2  Spark能带来什么?

(1)  打造全栈多计算范式的高效数据流水线

(2)  轻量级快速处理

(3)  易于使用spark支持多语言 

(4)  hdfs等存储层兼容

(5)  社区活跃度高

3  spark的执行流程逻辑图

 

Spark的执行流程在逻辑上是一个有向无环图,Action算子触发之后,将所有累计的算子形成一个DAGspark根据RDD的依赖关系切分形成不同的stages,图中有三个stage。每个stage包含了一个可执行的函数流水线。数据从HDFS中获取,经过转换形成RDD A RDD C

RDD A经过一系列的算子(本例是flatMapmap)转换成RDD B,同理,RDD C 转换成了RDD E,之后RDD B 和 RDD E 经过join转换成了RDD F,再经过saveAsSequenceFile将结果写入到HDFS中。

4  spark的架构图

ClusterManager:在standalone模式中为Master,控制着整个集群,监控worker。在YARN中是资源管理器

Worker:从节点,负责控制计算节点,启动ExecutorDriver。在YARN模式中卫NodeManager,负责计算节点的控制。

Driver:运行Applicationmain()函数并创建SparkContext

Executor:执行器,在worker node上执行任务的组件,用于启动线程池运行任务。每个Application拥有独立的一组Executors

SparkContext:整个应用的上下文,控制应用的生命周期。

RDDspark的基本计算单元,可以理解为分区存储在spark集群上的数组。

DAG Scheduler:根据作业构建基于stageDAG,并提交stageTaskScheduler

TaskScheduler:将任务分发给Executor执行。

SparkEnv:线程级别的上下文,存储运行时的重要组件的引用。

 

Spark的执行流程:client提交应用,Master找到一个Worker启动DriverDriverMaster或者资源管理器申请资源,资源获取之后,Driver将应用转化为DAG,再由DAGShedulerRDD DAG转化为基于stage的有向无环图提交给TaskSchedulerTaskScheduler将任务分发给Executor执行。

0 0
原创粉丝点击