Spark生态系统和运行架构

Spark是一个可应用于大规模数据处理的快速、通用引擎,spark提供了内存计算和基于DAG的任务调度机制。Spark最大的特点就是将计算数据、中间结果都存储在内存中,因此更适合于迭代运算。

1.Spark 生态系统

Spark 生态圈

Spark设计遵循”一个软件栈满足不同应用场景“的理念,逐渐形成了一整套完整的生态系统,既能够提供内存计算框架,也可以支持SQL即时查询(Spark SQL)、流计算(Spark Streaming)、机器学习(MLlib)和图计算(GraphX)等。Spark还可以部署在资源管理器YARN之上,提供一站式的大数据解决方案。

  • Spark Core:包含Spark最基础和最核心的功能,如内存计算、任务调度、部署模式、故障恢复、存储管理等,主要面向批处理功能。
  • Spark SQL:是一个用于结构化数据处理的Spark模块,允许开发人员直接处理RDD,同时也可查询Hive、HBase等外部数据源。
  • Spark Streaming:是一种流计算框架,其核心思想是将流数据分解成一系列短小的批处理作业,每个批处理作业都可以使用Spark Core进行快速处理。
  • MLlib:提供了常用机器学习算法的实现
  • GraphX:是Spark中用于图计算的API

Spark生态系统

Spark专注于数据的处理分析,数据的存储还是要借助Hadoop分布式文件系统HDFS、Amazon S3等来实现。

2.Spark运行架构

spark运行架构时,就是指Spark Core的运行架构

RDD:是Resilient distributed datasets的简称,中文为弹性分布式数据集;是Spark最核心的模块和类。一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合。

RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,不能直接修改,只能基于稳定的物理存储中的数据集创建RDD,或者通过在其他RDD上执行确定的转换操作(如map,join和group by)而创建得到新的RDD。

Spark的运行架构包括

  • 每个应用(Application 用户编写的Spark应用程序)的任务控制节点(Driver Program或简称Driver)   Spark中的Driver即运行Application的main函数 SparkContext:代表集群环境的对象
  • 集群资源管理器(Cluster Manager)   可以是spark自带的资源管理器,也可以是YARN或Mesos等资源管理框架
  • 运行作业任务的工作节点(Worker Node)  
  • 每个工作节点上负责具体任务的执行进程(Executor)

总而言之

Application:用户编写的Spark应用程序。

Job:一个作业包含多个RDD及作用于RDD上的各种操作。在spark rdd中,有action、transform操作,当真正触发action时,才真正执行计算,此时产生一个job任务。

Stage:是作业调度的基本单位。以shuffle为界,当在一个job任务中涉及shuffle操作时,会进行stage划分,产生一个或多个stage。

Task:运行在Executor上的工作单元。 一个stage可能包含一个或者多个task任务,task任务与partition、executor息息相关,即并行度。

spark运行基本流程

1.当一个spark Application提交时,为应用构建起基本的运行环境,即由Driver创建一个SparkContext进行资源的申请、任务的分配和监控,SparkContext可以看做是应用程序连接集群的通道
2.资源管理器为Executor分配资源,并启动Executor进程
3.SparkContext根据RDD的依赖关系构建DAG图,将DAG图提交给DAGScheduler,将DAG图分解成多个Stage,并且计算出各阶段之间的依赖关系,然后把一个个任务集提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor运行并提供应用程序代码。
4.Task在Executor上运行把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源。

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值