邦邦写这么好的spark你不看?damn!

Spark

目录

Spark

一、Spark 为何物

二、spark特点

1、运行速度快:

2、易用性好:

3、通用性强:

4、高兼容性:

三、Spark运行架构特点

四、spark生态圈组件

五、Spark和MapReduce的区别


邦邦在此监督qwq

spark官网地址:https://spark.apache.org/

一、Spark 为何物

Spark 是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台之一。

Hadoop 之父 Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大数据项目的 MapReduce 引擎的使用将下降,由 Apache Spark 取代)。

二、spark特点

1、运行速度快:

与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。计算的中间结果是存在于内存中

2、易用性好:

Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的Shell,可以非常方便地在这些Shell中使用Spark集群来验证解决问题的方法

3、通用性强:

Spark提供了统一的解决方案。Spark可以用于,交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。减少了开发和维护的人力成本和部署平台的物力成本

4、高兼容性:

Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力

三、Spark运行架构特点

1.每个application都有自己专属的Executor进程,并且该进程在application运行期间一直驻留,executor进程以多线程的方式运行Task

2.Spark运行过程与资源管理无关,子要能够获取Executor进程并保持通信即可

3.Task采用了数据本地性和推测执行等优化机制,实现“计算向数据靠拢”

四、spark生态圈组件

(1)Spark Core:Spark的核心,提供底层框架及核心支持。

(2)BlinkDB:一不用于在海量数据上进行交互式SQL查询的大规模并行查询引擎允许用户通过权衡数据精度缩短查询响应时间,数据的精度将被控制在允许的误差范围内。

(3)Spark SOL:可以执行SQL查询,支持基本的SOL语法和HiveQL语法,可读取的数据源包括Hive、HDFS、关系数据库(如MySQL)等。

(4)SparkStreaming:可以进行实时数据流式计算。

(5)MLBase:MLBase 是Spark生态圈的一部分,专注于机器学习领域,学习门槛较低。

(6)GraphX:图计算的应用在很多情况下处理的数据量都是很庞大的。

(7)SparkR:SparkR是 AMPLab发布的一个R语言开发包,使得R语言编写的程序不只可以在单机运行,也可以作为Spark的作业运行在集群上,极大地提升了R语言的数据处理能力。

  • spark的核心原理

(RDD概念:1.一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,不同节点上进行并行计算2.RDD提供了一种高度受限的共享内存模型,RDD是只读的记录分区集合,不能直接修改,只能通过在转换的过程中改

为了更加深入了解spark的核心原理,需要先了解两个重要的概念,即窄依赖(Narrow Dependency)和宽依赖(Wide Dependency)

窄依赖指的是子RDD的一个分区只依赖于某个父RDD中的一个分区

宽依赖指的是子RDD的每一个分区都依赖于某个父RDD中一个以上的分区

五、Spark和MapReduce的区别

1. spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的。

2. Spark 的内存计算特性 和 基于DAG有向无环图 的执行模型,通常比 MapReduce 更快。

3.Spark提供了丰富的API,包括 scala、Java、Python等。开发起来更加灵活、表达能力更强。而 MapReduce 使用 Java 编程语言来编写 Map 和 Reduce 函数,需要手动编写更多的代码来实现处理逻辑。

4. Spark 有更好的扩展性,可以方便的与其他数据处理框架和工具集成。

5. Spark提供了弹性式分布数据集RDD,具有自动容错和数据恢复机制。

MapReduce核心环节-Shuffle过程

所谓Shuffle,是指对Map输出结果进行分区、排序、合并等处理并交给Reduce的过程。因此,Shuffle过程分为Map端的操作和Reduce端的操作,主要执行以下操作。

over 写完了 本文主写这么好不打赏?你再这样呢 

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值