Learning Spark(Ⅰ)

Spark是一种基于内存的高效数据处理框架,支持SQL查询、流式计算、机器学习和图算法,具备快速运行、易用性和通用性。Spark通过有向无环图执行引擎优化计算,适用于构建大型低延迟数据分析应用,同时提供多种运行模式和资源调度方式。

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

Part 1

spark概述

spark是基于内存的计算框架,可以帮助我们构建大型的,低延迟的数据分析应用程序
spark的几个特点
1.运行速度快。基于内存的计算,经常在内存中读写数据;有向无环图的执行引擎可以进行优化
2.容易使用。可支持多种开发语言,Java,python,scala,R
3.通用性
SQL查询:Spark SQL
流式计算:Spark Streaming
机器学习:Spark MLib
图算法组件:Spark的GraphX
4.运行模式多样

spark操作类型更多,表达能力更强(相较于MR)
spark应用程序能在内存尽量在内存,能不落磁盘尽量不落此案,并不是说spark所有的数据都在内存里运行

spark生态系统

对于企业而言,比较典型的相关应用场景主要有以下几类
在这里插入图片描述

用不同的相关的产品来满足不同应用场景的需求,比如以前的批处理,使用Hadoop的MR,基于历史数据的交互式查询,使用到数据仓库的impala技术,对于基于实时数据流的数据处理,使用推特公司的storm。以前使用不同公司的不同技术框架来满足企业不同的应用需求,但如此会带来一些问题。
1.在不同应用场景下,输入输出数据无法做到无缝共享,通常要进行数据格式的转换
2.维护成本较高
3.资源利用不充分,比较难对同一个集群中各个机器进行资源的统一调度和分配
spark是一个软件栈,可以用统一的资源调度框架,可以满足不同应用场景
在这里插入图片描述

解读:两个资源调度管理器二选一即可
Tachyon和HDFS都是分布式文件系统,但前者更快(因为基于内存)
满足流计算需求:2.3.0成为正式版本的structured streaming和Spark Streaming
Mlib:实现了很多常用的机器学习算法,我们只需调用接口,传参数,进行训练,输出结果

在这里插入图片描述

spark的基本概念和架构设计

在这里插入图片描述

解读:RDD是分区的,所谓弹性,其一,数据可多可少,少的时候在一台机器下即可存下,多的时候必须分布式存储在不同的机器的内存上;其二,分区数目可变化,在计算的过程当中动态的变化分区数目。RDD是spark最核心的数据抽象。
RAG,RDD一次又一次地操作会形成一个有向无环图,我们编程时,就是对RDD进行一次又一次地转换操作以及动作类型操作,最终不同操作之间会连接成一张有向无环图
Executor,spark运转起来后,集群中会有一个主节点,还有很多从节点(工作节点,具体负责相关任务),在每个工作节点上会运行一个executor进程,一个executor进程会派生出很多线程,每个线程再去执行具体的相关任务。
Task是运行在executor的进程上的工作单元,运行是以任务的方式去运行
Job,一个应用程序提交以后,就是把它分解成多(一)个作业去完成
在这里插入图片描述

如图为spark的运行架构,采用了一主多从架构。在分布式系统中,经常用到两种典型架构,一种是P2P(对等架构),主从架构(eg:Hadoop,spark)
集群资源管理器:负责整个集群cpu,内存等资源的调度和管理,可以使用spark自带的资源管理器(默认),也可以使用YARN,或者Mesos
在这里插入图片描述

(各概念之间的关系)
解读:应用是提交给主节点,运行在主节点上

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

解读:当我们去执行应用时,主节点(driver节点)会向集群资源管理器去申请资源,申请到资源后,启动executor进程,并且向executor进程发送应用程序的代码和文件,然后应用程序会在executor进程上派发出线程去执行任务,并把结果发回给driver节点,提交给用户或者写入HDFS或写入关系型数据库等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值