美文网首页
Spark 的基本介绍

Spark 的基本介绍

作者: 笔头还没烂 | 来源:发表于2022-08-29 23:17 被阅读0次
  1. (1)MapReduce:分布式的计算分析引擎

    MR:分布式计算引擎,处理大规模的数据,主要是用于批处理操作,离线计算操作
     1 - 执行效率比较低
     2 - API 相对比较底层,开发效率比较慢
     3 - 迭代计算非常的不方便
    
    什么是迭代计算呢?
     简单来说,在执行过程中,整个的计算任务需要划分为多个阶段,每一个阶段需要依赖于上一个阶段的执行结果,一个阶段一个阶段的进行运行,我们可以将这样的计算过程称为迭代计算
    

    正因为MR存在这样的弊端,在一些场景中,更加希望能够有一款计算引擎执行效率更加高效,能够更好的支持迭代计算操作,也能够更加方便的使用,同时还能够处理大规模的数据,我们的spark 其实就是在这样的背景下,逐步产生出来。

Apache Spark 是一款用于处理大规模数据的分布式计算分析引擎,基于内存计算,整个Spark的核心数据结构为RDD

RDD :弹性的分布式数据集,目前将其理解为就是一个庞大的容器,整个计算都是在这个容器中完成的。

Apache Spark 最早是来源于加州伯克利分校发布一篇论文产生的,后期将其贡献给Apache,目前也是apache 旗下顶级开源项目。官方网站:spark.apache.org

整个spark 主要是基于scala语言编写的

为什么说Spark的程序运行效率快呢?

原因一:spark提供了一种全新的数据结构:RDD
     通过这个数据结构,让分布试计算引擎在运算的时候可以基于内存来计算,同时能更好的进行迭代计算操作,对于MR来说,主要是基于磁盘来计算,而且是进行迭代计算的操作,需要将多个MR进行串联操作,执行效率比较低
     
原因二:Spark 基于线程来运行的,而MR是基于进程运行的
     线程的启动和销毁的速度,要高于进程的启动和销毁的
Spark是一个分布式计算的引擎,PySpark是一个python的库,专门用于通过python语言来操作spark的python库

Spark的特点:

(1)运行速度快

原因一:基于内存运行,采用DAG(有向无环图)进行计算操作,可以将中间的结果优先保存到内存;如果内存不足也会存储到磁盘。

原因二:基于线程运行,线程的启动和销毁优于进程

Spark认为,如果基于内存,比MR快100倍;即使基于磁盘运行,也会快10倍。

(2)易用性

原因一:spark提供多种语言的客户端,可以基于多种语言来开发spark程序:Python、sql、scala、java、R
         目前主推 python 和 SQL
         
原因二:spark 提供了更加高阶的API,而且这些API在不同的语言上,基本都是一样的。大大降低了程序员的学习成本。

(3)通用性

Spark 提供了多种组件,用于满足各种场景的处理工作

Spark core: spark 的核心库 学习spark的基础
     主要是用于放置spark的核心API,内存管理的API 包括维护RDD的数据结构
Spark SQL: 通过SQL的方式来操作spark 计算框架,最为重要
Struct Streaming: 结构化流 基于Spark SQL之上的组件,用于进行流式计算(实时计算)
Spark streaming:Spark 的流式计算的框架,主要是用来进行流式计算操作(实时计算)
     目前不使用,整个实时部分主要是基于Flink
Spark MLlib: Spark 的机器学习库,主要是包含一些机器学习的相关内容,比如说回归聚类。。(针对特定人群)
Spark graphx:Spark的图计算,比如说:地区的路程规划(针对特定人群)

(4)随处运行

原因一:编写的Spark程序可以运行在不同的资源调度平台上:local、yarn、spark集群 、云上调度平台
原因二:Spark 程序可以和大数据的生态圈中各种软件进行集成,便于方便的使用Spark来对接不同的软件

整个Spark集群内部数据通信的框架基于netty(通信框架)

相关文章

网友评论

      本文标题:Spark 的基本介绍

      本文链接:https://www.haomeiwen.com/subject/hhoknrtx.html