Spark核心技术基础系列学习笔记——Spark简介,特点及其应用场景

 

 Spark简介

1.   什么是Spark

提到大数据首先会想到开源项目Hadoop,Hadoop解决了大多数批处理工作负载问题。但是存在一些限制:

比如:

  • 缺少对迭代的支持
  • 中间数据需要输出到硬盘存储,产生了较高的延迟。

总结:MapReduce比较适合处理离线数据,在实时查询和迭代计算上存在较大的不足,而随着业务的发展,对实时查询和迭代计算有更多的需求。

 

什么是Spark?

Apache顶级的开源项目,是一个快速通用的大规模数据处理引擎,和Hadoop的MapReduce计算框架类似,但是相对于MapReduce,Spark凭借其可伸缩,基于内存计算等特点,以及可以直接读写Hadoop上任何格式数据的优势,进行批处理时更加高效,更低的延时。

 

 

 

1.1  概述

随 着 互 联 网 的 高 速 发 展, 以 大 数 据 为 核 心 的 计 算 框 架 不 断 出 现, 从 支 持 离 线 的
MapReduce 席卷全球,到支持在线处理的 Storm 异军突起,支持迭代计算的 Spark 攻城拔
寨,支持高性能数据挖掘的 MPI 深耕细作。

各个框架各有优缺点,根据不同业务,同时被使用。比如:

模型训练和数据处理——————>MapReduce

实时性要求aging的线上业务————>Storm

日志处理及个性化推荐———————>Spark

 

 

 

1.2   Spark大数据处理框架

 

 

  • 最底层:分布式存储系统
  • 资源管理:Mesos,YARN等集群资源管理模式 或 Spark自带的独立运行模式 以及本地运行模式。
  • Spark:为上层多种应用提供服务。

                     如:Spark SQL:提供SQL查询服务,性能比Hive快3-50倍。

                            MLlib:提供机器学习服务

                            GraphX:提供图计算服务

                            Spark Streaming将流式计算分解为一系列短小的批处理计算,并且提高可靠和吞吐量服务。

 

其中,基于Hadoop的资源管理器YARN实际上是一个弹性计算平台,作为统一的计算资源管理框架,不仅仅服务于MapReduce计算框架,而且已经实现了多种计算框架进行统一管理。这种共享集群资源的模式带来了很多好处。

  • 资源利用率高

多种框架共享资源的模式有效解决了由于应用程序数量的不均衡性导

致的高峰时段任务比较拥挤,空闲时段任务比较空闲的问题;同时均衡了内存和 CPU

等资源的利用。

  • 实现了数据共享

随着数据量的增加,数据移动成本越来越高,网络带宽、磁盘空

间、磁盘 IO 都会成为瓶颈,在分散数据的情况下,会造成任务执行的成本提高,获

得结果的周期变长,而数据共享模式可以让多种框架共享数据和硬件资源,大幅度减

少数据分散带来的成本。

  • 有效降低运维和管理成本

相比较一种计算框架需要一批维护人员,而运维人员较多

又会带来的管理成本的上升;共享模式只需要少数的运维人员和管理人员即可完成多

个框架的统一运维管理,便于运维优化和运维管理策略统一执行。

 

 

总之, Spark 凭借其良好的伸缩性、快速的在线处理速度、具有 Hadoop 基因等一系列优

势,迅速成为大数据处理领域的佼佼者。 Apache Spark 已经成为整合以下大数据应用的标准

平台:

  • 交互式查询,包括 SQL;
  • 实时流处理;
  • 复杂的分析,包括机器学习、图计算;
  • 批处理

1.3  Spark的特点

  • 快速。 Spark 有先进的 DAG 执行引擎,支持循环数据流和内存计算; Spark 程序在

内存中的运行速度是 Hadoop MapReduce 运行速度的 100 倍,在磁盘上的运行速度是

Hadoop MapReduce 运行速度的 10 倍,如图 1-2 所示。

  • 易用。 Spark 支持使用 Java、 Scala、 Python 语言快速编写应用,提供超过 80 个高级

运算符,使得编写并行应用程序变得容易。

  • 通用。 Spark 可以与 SQL、 Streaming 以及复杂的分析良好结合。基于 Spark,有一系

列高级工具,包括 Spark SQL、 MLlib(机器学习库)、 GraphX 和 Spark Streaming,支

持在一个应用中同时使用这些架构,如图 1-3 所示。

  • 有效集成 Hadoop。 Spark 可以指定 Hadoop, YARN 的版本来编译出合适的发行版

本, Spark 也能够很容易地运行在 EC2、 Mesos 上,或以 Standalone 模式运行,并从

HDFS、 HBase、 Cassandra 和其他 Hadoop 数据源读取数据。

 

 

 

1.4 Spark应用场景

Spark 使用了内存分布式数据集,除了能够提供交互式查询外,还优化了迭代工作负载,

在 Spark SQL、 Spark Streaming、 MLlib、 GraphX 都有自己的子项目。在互联网领域, Spark

在快速查询、实时日志采集处理、业务推荐、定制广告、用户图计算等方面都有相应的应

用。国内的一些大公司,比如阿里巴巴、腾讯、 Intel、网易、科大讯飞、百分点科技等都有

实际业务运行在 Spark 平台上。下面简要说明 Spark 在各个领域中的用途。

 

  • 快速查询系统,基于日志数据的快速查询系统业务构建于 Spark 之上,利用其快速查

询以及内存表等优势,能够承担大部分日志数据的即时查询工作;在性能方面,普遍

比 Hive 快 2 ~ 10 倍,如果使用内存表的功能,性能将会比 Hive 快百倍。

  • 实时日志采集处理,通过 Spark Streaming 实时进行业务日志采集,快速迭代处理,

并进行综合分析,能够满足线上系统分析要求。

  • 业务推荐系统,使用 Spark 将业务推荐系统的小时和天级别的模型训练转变为分钟级

别的模型训练,有效优化相关排名、个性化推荐以及热点点击分析等。

  • 定制广告系统,在定制广告业务方面需要大数据做应用分析、效果分析、定向优化

等,借助 Spark 快速迭代的优势,实现了在“数据实时采集、算法实时训练、系统实

时预测”的全流程实时并行高维算法,支持上亿的请求量处理;模拟广告投放计算效

率高、延迟小,同 MapReduce 相比延迟至少降低一个数量级。

  • 用户图计算。利用 GraphX 解决了许多生产问题,包括以下计算场景:基于度分布的

中枢节点发现、基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机

游走的用户属性传播等。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark是一个开源的大数据处理框架,它提供了高效的数据处理能力和易用的API,支持多种数据处理模式,包括批处理、流处理和机器学习等。Spark的核心是分布式计算引擎,它可以在集群中运行,利用多台计算机的计算能力来处理大规模数据。Spark的优势在于其高效的内存计算和强大的数据处理能力,可以在处理大规模数据时提供更快的计算速度和更高的性能。Spark的生态系统也非常丰富,包括Spark SQL、Spark Streaming、MLlib和GraphX等组件,可以满足不同的数据处理需求。 ### 回答2: Spark是一种大规模数据处理引擎,可以较快地处理大数据。Spark并不是单独的一种工具,而是一系列的工具和库的整合。它具备高效的内存计算功能,能够在数秒或数分钟内完成数据处理任务。 Spark的核心是分布式计算引擎,通过将数据分成多个部分进行处理,缩短了计算时间。Spark基于RDD(弹性分布式数据集)进行数据处理,RDD是一种可缓存、可重用和容错的数据结构。RDD抽象了数据分布和分区,提供了简单的API。 Spark的架构包括四个组件:Driver、Cluster manager、Worker、和 Executor。其中Driver是Spark应用程序的主程序,Cluster manager通过Master节点来管理各个Worker节点,Worker节点包含了整个Spark集群的计算资源,Executor执行计算任务。 Spark支持多种编程语言,包括Scala、Java、Python和R。其中Scala是Spark的主要语言,因为它能够将Spark的API最大程度地利用。 除了分布式计算引擎外,Spark还提供了多种库和工具,包括Spark SQL、Spark Streaming、MLlib和GraphX。Spark SQL是一种用于结构化数据处理的库,能够使用SQL语句进行数据查询;Spark Streaming可以实时处理数据流,包括文本和图像等;MLlib是实现了多种机器学习算法的库,包括分类、回归、聚类和协同过滤;GraphX可以用于图计算和图分析领域。 总之,Spark是一种强大的大数据处理引擎,能够通过分布式计算架构实现快速的数据处理。它提供了多种语言支持和众多的库和工具,方便用户处理各类数据。 ### 回答3: Spark是一款开源的、分布式的大数据处理框架,它的出现将大数据处理的速度提升到了一个全新的水平。Spark特点在于它的内存计算引擎,这使得Spark的运行速度比传统的MapReduce处理速度要快很多,同时也比传统的Hadoop更加灵活。 Spark可以用于处理各种大数据应用场景,包括批处理、交互式查询、实时流处理等等。同时,Spark的生态系统非常丰富,有众多的开源库和工具可以使用,例如:Spark SQL、Spark Streaming、GraphX、MLlib等等。 Spark的运行环境需要一个集群,因为Spark是分布式的,它可以通过在集群中多个节点上并行执行任务来提升处理速度,而且Spark支持多种集群管理和资源调度工具,例如:Apache Mesos、Hadoop YARN、Spark自带的资源调度程序等等。 Spark的编程接口非常灵活,可以使用Scala、Java、Python等多种编程语言来编写Spark程序。无论是使用哪种编程语言,Spark都提供了相应的API和工具,例如:Spark SQL、Spark Streaming等。 总之,Spark是一个非常强大的大数据处理框架,它的出现是对传统的Hadoop框架的一种补充和升级,不仅可以处理海量的数据,而且可以提供更快速的数据处理速度和更强大的数据处理能力。因此,Spark已经成为现代大数据处理和机器学习领域中非常重要的工具之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值