Spark架构和工作原理、RDD依赖关系、DAG、stage详解

本文深入探讨Spark架构,包括Spark与Hadoop的区别,Spark的工作流程、运行特点、常用术语以及运行模式。重点阐述RDD的依赖关系,如何划分Stage,以及DAG的概念、作用和工作流程。通过对Spark架构的全面理解,帮助读者掌握Spark的核心运作机制。
摘要由CSDN通过智能技术生成

1. Spark架构及生态

通常当需要处理的数据量超过了单机尺寸(比如我们的计算机有4GB的内存,而我们需要处理100GB以上的数据)这时我们可以选择spark集群进行计算,有时我们可能需要处理的数据量并不大,但是计算很复杂,需要大量的时间,这是我们也可以选择利用spark集群强大的计算资源,并行化地计算,其架构示意图如下:

Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的。
Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。
Spark Streaming:对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据
MLib:一个常用机器学习的算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作
GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作

Spark架构采用了分布式计算中的Master-Slave模型,Master是对应集群中的含有Master进程的节点,Slave是集群中含有Worker进程的节点。Master作为整个集群的控制器,负责整个集群的正常运行;Worker相当于是计算节点,接收主节点命令与进行状态汇报;Executor负责任务的执行;Client作为用户的客户端负责提交应用,Driver负责控制一个应用的执行,组成图如下:

Spark集群部署后,需要在主节点和从节点分别启动Master进程和Worker进程,对整个集群进行控制。在一个Spark应用的执行过程中,Driver和Worker是两个重要角色。

Driver程序是应用逻辑执行的起点,负责作业的调度,即Task任务的分发,而多个Worker用来管理计算节点和创建Executor并行处理任务。在执行阶段,Driver会将Task和Task所依赖的file和jar序列化后传递给对应的Worker机器,同时Executor对相应数据分区的任务进行处理。

Spark的架构中的基本组件:

1、Cluster Manager:在standalone模式中即为Master主节点,控制整个集群,监控worker。在YARN模式中为资源管理器。
2、Worker:从节点,负责控制计算节点,启动Executor或者Driver。在YARN模式中为NodeManager,负责计算节点的控制。
3、Driver:运行Application的main()函数并创建SparkContext。
4、Executor:执行器,在worker node上执行任务的组件、用于启动线程池运行任务。每个Application拥有独立的一组Executor。
5、SparkContext:整个应用的上下文,控制应用的生命周期。
6、RDD:Spark的基础计算单元,一组RDD可形成执行的有向无环图RDD Graph。
7、DAG Scheduler:根据作业(task)构建基于Stage的DAG,并提交Stage给TaskScheduler。
8、TaskScheduler:将任务(task)分发给Executor执行。
9、SparkEnv:线程级别的上下文, 存储运行时的重要组件的引用。

2. Spark与Hadoop

1、Hadoop有两个核心模块,分布式存储模块HDFS和分布式计算模块MapReduce
Spark本身并没有提供分布式文件系统,因此Spark的分析大多依赖于Hadoop的分布式文件系统HDFS

2、Hadoop的MapReduce与Spark都可以进行数据计算,而相比于MapReduce,Spark的速度更快并且提供的功能更加丰富

关系如下图:

3. Spark工作原理

3.1 运行流程及特点

spark运行流程图如下:

1、构建Spark Application的运行环境,启动SparkContext
2、SparkContext向资源管理器(可以是Standalone&

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值