Spark大数据分与实践笔记(第二章 Spark基础-01)

第二章 Spark基础

Spark于 2009 年诞生于美国加州大学伯克利分校的 AMP 实验室,它是一个可应用于大规模数据 处理的统一分析引擎。 Spark 不仅计算速度快,而且内置了丰富的 API ,使得我们能够更加容易编写程序 。

2.1 初识Spark

2.1.1 Spark的概述

Spark在2013年加入Apache孵化器项目,之后获得迅猛的发展,并于2014年正式成为Apache软件基金会的顶级项目。Spark生态系统已经发展成为一个可应用于大规模数据处理的统一分析引擎,它是基于内存计算的大数据并行计算框架,适用于各种各样的分布式平台的系统。在Spark生态圈中包含了Spark SQL、Spark Streaming、GraphX、MLlib等组件。
在这里插入图片描述

●Spark Core:Spark核心组件,实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含对弹性分布式数据集的API定义。
●Spark SQL:用来操作结构化数据的核心组件,通过Spark SQL可直接查询Hive、HBase等多种外部数据源中的数据。Spark SQL的重要特点是能够统一处理关系表和RDD。
●Spark Streaming:Spark提供的流式计算框架,支持高吞吐量、可容错处理的实时流式数据处理,其核心原理是将流数据分解成一系列短小的批处理作业。
●MLlib:Spark提供的关于机器学习功能的算法程序库,包括分类、回归、聚类、协同过滤算法等,还提供了模型评估、数据导入等额外的功能。
●GraphX:Spark提供的分布式图处理框架,拥有对图计算和图挖掘算法的API接口及丰富的功能和运算符,便于对分布式图处理的需求,能在海量数据上运行复杂的图算法。
●独立调度器、Yarn、Mesos:集群管理器,负责Spark框架高效地在一个到数千个节点之间进行伸缩计算的资源管理。
Spark生态系统各个组件关系密切,并且可以相互调用,这样设计具有以下显著优势:
●Spark生态系统包含的所有程序和高级组件都可以从Spark核心引擎的改进中获准。
●不需要运行多套独立的软件系统,能够大大减少运行整个系统的资源代价。
●能够无缝整合各个系统,构建不同处理模型的应用。
综上所述,Spark框架对大数据的支持从内存计算、实时处理到交互式查询,进而发展到图计算和机器学习模块。

2.1.2 Spark的特点

Spark计算框架在处理数据时,所有的中间数据都保存在内存中,从而减少磁盘读写操作,提高框架计算效率。同时Spark还兼容HDFS、Hive,可以很好地与Hadoop系统融合,从而弥补MapReduce高延迟的性能缺点。所以说,Spark是一个更加快速、高效的大数据计算平台。

  1. 速度快
    根据官方数据统计得出,Spark的运行速度比Hadoop要快的多,并且Spark实现了高效的DAG执行引擎。
  2. 易用性
    Spark编程支持Java、Python、Scala或R语言,并且还拥有超过80种的高级算法,除此之前,Spark还支持交互式的Shell操作。
  3. 通用性
    Spark提供了统一的解决方案,适用于批处理、交互式查询(Spark SQL)、实例流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。
  4. 兼容性
    Spark可以运行在Hadoop模式、Mesos模式、Standalone独立模式或Cloud中,并且还可以访问各种数据源,包括本地文件系统、HDFS、Cassandra、HBase和Hive等。

2.1.3 Spark应用场景

在数据科学应用中,数据工程师可以利用Spark进行数据分析与建模,由于Spark具有良好的易用性,数据工程师只需要具备一定的SQL语言基础、统计学、机器学习等方面的经验,以及使用Python、Matlab或者R语言的基础编程能力,就可以使用Spark进行上述工作。
在数据处理应用中,大数据工程师将Spark技术应用于广告、报表、推荐系统等业务中,在广告业务中,利用Spark系统进行应用分析、效果分析、定向优化等业务,在推荐系统业务中,利用Spark内置机器学习算法训练模型数据,进行个性化推荐及热点点击分析等业务。
Spark拥有完整而强大的技术栈,如今已吸引了国内外各大公司的研发与使用,淘宝技术团队使用Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等,应用于商品推荐、社区发现等功能。
腾讯大数据精准推荐借助Spark快速迭代的优势,实现了在"数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通投放系统上。
优酷土豆则将Spark应用于视频推荐(图计算)、广告等业务的研发与拓展,相信在将来,Spark会在更多的应用场景中发挥重要作用。

2.1.4 Spark与Hadoop对比

Hadoop与Spark两者都是大数据计算框架,但是两者各自都有自己的优势,关于Spark与Hadoop的对比,主要有以下几点:
1.编程方式
Hadoop的MapReduce在计算数据时,计算过程必须要转化为Map和Reduce两个过程,而Spark的计算模型不局限于Map和Reduce操作,还提供了多种数据集的操作类型,编程模型比MapReduce更加灵活。
2.数据存储
Hadoop的MapReduce进行计算时,每次产生的中间结果都是存储在本地磁盘中;而Spark在计算时产生的中间结果存储在内存中。
3.数据处理
Hadoop在每次执行数据处理时,都需要从磁盘中加载数据,导致磁盘的IO开销较大;而Spark在执行数据处理时,只需要将数据加载到内存中,之后直接在内存中加载中间结果数据集即可,减少了磁盘的IO开销。
4.数据容错
MapReduce计算的中间结果数据,保存在磁盘中,并且Hadoop框架底层实现了备份机制,从而保证了数据容错;同样Spark RDD实现了基于Lineage的容错机制和设置检查点两种方式的容错机制,弥补数据在内存处理时断电数据丢失的问题。
在这里插入图片描述
在这里插入图片描述

从上图可以看出,使用Hadoop MapReduce进行计算时,每

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妉妉师姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值