【大数据分析】Spark介绍

本文介绍了Spark的大数据处理生态系统,包括Spark Core、Spark SQL、Spark Streaming、MLlib和GraphX。详细阐述了Spark的基本原理,如Application、Executor、Worker、Task、Job、Stage及其相互关系。还探讨了RDD作为Spark的基础数据抽象,以及RDD的属性和依赖关系。最后讨论了Spark中Job和Stage的划分,以及Executor内存分配策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Spark是一个以复杂计算为核心的大数据分析框架,是MapReduce的“后继者”,具备高效性、通用性等特点。

Spark最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark提供的技术更加全面,速度更快(比MapReduce快一百倍)。

Spark的技术生态

Spark的技术生态包含了各种丰富的组件,而不同的组件提供了不同功能,以适应不同场景。

Spark core

spark core包含Spark的基本功能,定义了RDD的API以及以此为基础的其他动作。Spark的其他库都构建在RDD和Spark Core之上。

Spark SQL

提供通过HiveQL与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL的查询会被转换为Spark操作。

Spark streaming

对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据。严格来说Spark streaming并不是实时的,而是准实时(跟Storm相比)。

MLlib

一个基于RDD的机器学习算法库,包含了可扩展的机器学习算法。

GraphX

控制图、并行图操作和计算的一组算法和工具的集合。

Spark的基本原理

在这里插入图片描述
在这里插入图片描述

Application

Application是在使用spark-submit 提交的打包程序,也就是需要写的代码。
完整的Application一般包含以下步骤:
(1)获取数据
(2)计算逻辑
(3)输出结果(可以是存入HDFS,或者是其他存储介质)

Executor

Executor是一个Application运行在Worker节点上的一种进程,一个worker可以有多个Executor,一个Executor进程有且仅有一个executor对象。executor对象负责将Task包装成taskRunner,并从线程池抽取出一个空闲线程运行Task。每个进程能并行运行Task的个数就取决于分配给它的CPU core的数量。

Worker

Spark集群中可以用来运行Application的节点,在standalone模式下指的是slaves文件配置的worker节点,在spark on yarn模式下是NodeManager节点。

Task

在Excutor进程中执行任务的单元,执行相同代码段的多个Task组成一个Stage。

Job

由一个Action算子触发的一个调度。

Stage

Spark根据提交的作业代码划分出多个Stages,每个Stage有多个Tasks,这些Tasks负责并行处理他们所属的stage里面的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值