Spark特性

Apache Spark是一个针对大规模数据处理的统一分析引擎,以其速度快、易用性、通用性和兼容性著称。相较于MapReduce,Spark通过内存计算和线程替代进程提升性能,支持Java/Scala/Python/R/SQL等多种编程语言,并拥有SparkSQL、SparkStreaming、Mlib和GraphX等模块,适用于各种数据分析场景。此外,Spark能兼容standAlone、YARN和Mesos等资源调度平台。

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

从spark官网看spark特性。
spark是apache的顶级项目,所以官网地址spark加上apache.com
http://spark.apache.org/

1、spark是什么

Apache Spark™ is a unified analytics engine for large-scale data processing.
spark是针对于大规模数据处理的统一分析引擎。

spark是在Hadoop基础上的改进,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。

spark是基于内存计算框架,计算速度非常之快,但是它仅仅只是涉及到计算,并没有涉及到数据的存储,后期需要使用spark对接外部的数据源,比如hdfs。

2、spark四大特性

2.1 速度快

在这里插入图片描述
运行速度提高100倍
Apache Spark使用最先进的DAG调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性能。

spark比mapreduce快的2个主要原因:

  • 基于内存

mapreduce任务后期再计算的时候,每一个job的输出结果会落地到磁盘,后续有其他的job需要依赖于前面job的输出结果,这个时候就需要进行大量的磁盘io操作。性能就比较低。

spark任务后期再计算的时候,job的输出结果可以保存在内存中,后续有其他的job需要依赖于前面job的输出结果,这个时候就直接从内存中获取得到,避免了磁盘io操作,性能比较高。

  • 线程替代进程

mapreduce任务以进程的方式运行在yarn集群中,比如程序中有100个MapTask,一个task就需要一个进程,这些task要运行就需要开启100个进程。

spark任务以线程的方式运行在进程中,比如程序中有100个MapTask,后期一个task就对应一个线程,这里就不在是进程,这些task需要运行,这里可以极端一点:只需要开启1个进程,在这个进程中启动100个线程就可以了。
进程中可以启动很多个线程,而开启一个进程与开启一个线程需要的时间和调度代价是不一样。 开启一个进程需要的时间远远大于开启一个线程。

2.2 易用性

在这里插入图片描述
可以通过 java/scala/python/R/SQL等不同语言快速去编写spark程序。

2.3 通用性

在这里插入图片描述
spark框架不再是一个简单的框架,可以把spark理解成一个生态系统,它内部是包含了很多模块,基于不同的应用场景可以选择对应的模块去使用

  • sparksql
    通过sql去开发spark程序做一些离线分析
  • sparkStreaming
    主要是用来解决公司有实时计算的这种场景
  • Mlib
    它封装了一些机器学习的算法库
  • Graphx
    图计算

2.4 兼容性

在这里插入图片描述
spark程序就是一个计算逻辑程序,这个任务要运行就需要计算资源(内存、cpu、磁盘),哪里可以给当前这个任务提供计算资源,就可以把spark程序提交到哪里去运行。一般以下几种方式比较常用,其中yarn是最普遍的方式。

  • standAlone
    spark自带的集群模式,整个任务的资源分配由spark集群的老大Master负责
  • yarn
    可以把spark程序提交到yarn中运行,整个任务的资源分配由yarn中的老大ResourceManager负责
  • mesos
    apache开源的一个类似于yarn的资源调度平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值