Spark总览

2018-10-13  本文已影响0人  hipeer

什么是Spark

Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark扩展了广泛使用的MapReduce计算模型,而且高效的支持更多计算模式,包括批处理,迭代算法,交互式查询,流处理。Spark拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是,Spark是基于内存的迭代式计算,Job的中间结果保存在内存中,从而在计算时减少了大量的IO,因此Spark比MapReduce更快。

Spark的特点

Spark生态系统

Spark Stack.png

总结:Spark共有5大组件:Spark Core, Spark SQL,Spark Streaming,MLlib,GraphX。其中Spark Core是Spark的核心,它是一个以RDD为基础的内存计算框架,而其他的四个组件都运行在Spark Core之上。

Spark 架构

Spark Architecture.png

Spark运行机制


每个Spark应用都由一个驱动器程序(drive program)来发起集群上的各种并行操作。驱动器程序包含应用的main函数,驱动器负责创建SparkContext,SparkContext可以与不同种类的集群资源管理器(Cluster Manager),例如Hadoop YARN,Mesos进行通信,获取到集群进行所需的资源后,SparkContext将得到集群中工作节点(Worker Node)上对应的Executor(不同的Spark程序有不同的Executor,他们之间是相互独立的进程,Executor为应用程序提供分布式计算以及数据存储功能),之后SparkContext将应用程序代码发送到各Executor,最后将任务(Task)分配给executors执行

整体流程:

1、Client提交应用。
2、Master找到一个Worker启动Driver
3、Driver向Master或者资源管理器申请资源,之后将应用转化为RDD Graph
4、再由DAGSchedule将RDD Graph转化为Stage的有向无环图提交给TaskSchedule。
5、再由TaskSchedule提交任务给Executor执行。
6、其它组件协同工作,确保整个应用顺利执行。

上一篇 下一篇

猜你喜欢

热点阅读