云计算与大数据技术 验证性实验指导 实验实践10.Spark的安装配置及使用实践;11. Flink流式计算引擎及实践.pdf

云计算与大数据技术 验证性实验指导 实验实践10.Spark的安装配置及使用实践;11. Flink流式计算引擎及实践.pdf

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于内存的计算引擎Spark

1.Spark的概述

1.1Spark简介和特点

Spark由加州大学伯克利分校AMP实验室(Algorithms,Machines,andPeopleLab)开发、开源的通

用内存并行计算框架,可用来构建大型的、低延迟的数据分析应用程序。

Spark是借鉴HadoopMapReduce技术发展而来的,是对Hadoop的补充,可以在Hadoop文件系

统中并行运行。Spark继承了Hadoop分布式并行计算的优点,并改进了MapReduce延迟过高,无法

胜任实时、快速计算需求一些明显的不足。

Spark的特点:

(1)Spark提供了内存计算,Spark减少了迭代过程中数据需要写入磁盘的需求,提高了处理效率。

(2)Spark提供了一个全面、统一的框架,包括SparkSQL、SparkStreaming、SparkMLlib、Spark

GraphX等技术组件,可以一站式地完成大数据领域的离线批处理、交互式查询分析、流式计算、机器

学习、图计算等常见的任务。能够实现文本数据、图表数据等不同性质的数据集,以及批量数据或实时

的流数据不同数据源的大数据处理的需求。

(3)Spark提供的数据集操作类型除了Map、Reduce操作外,还提供Filter、FlatMap、

ReduceByKey等多种转换操作,以及Count、Collect、Reduce等行为操作。比Hadoop更加通用,

可以支持更多类型的应用。

(4)Spark基于DAG的任务调度执行机制比HadoopMapReduce的迭代执行机制更优越。

Hadoop各个处理结点之间的通信模型只有Shuffle一种模式,Spark的程序开发者可以使用DAG

开发复杂的多步数据管道,控制中间结果的存储、分区等。

(5)Spark基于内存进行数据处理,适用于数据量不是特别大,但是要求实时统计分析的场景。同时

Spark对硬件要求比较高,特别是对内存和CPU有更高的要求。

1.2Spark与hadoop的比较

Hadoop是一基础平台,包含计算、存储、调度。Hadoop有两个核心模块,分布式存储模块HDFS和分

布式计算模块MapReduce。

spark本身是一分布式计算引擎,并没有提供分布式文件系统,因此spark的分析大多依赖于Hadoop的

分布式文件系统HDFS,也可采用Hive、HBase存储数据。

Hadoop的作业Job分为MapTask和ReduceTask阶段,Task以进程方式维护,任务启动慢,Spark的

Task以线程方式维护,任务启动快。MapReduce中间计算结果在HDFS磁盘上,延迟大。Spark的RDD

中间运算结果在内存中,延迟小。相比于MapReduce,spark的速度更快。

Hadoop的Map+Reduce,API较为底层,算法适应性差。Spark的RDD组成DAG有向无环图,API较为

顶层,方便使用。相比于MapReduce,spark的提供的功能更加丰富。

MapReduce适合于大规模数据集上的批处理场景,Spark适合于迭代计算,交互式计算,流计算。

操作系统关联知识:

Hadoop中的MR中每个map/reducetask都是一个java进程方式运行,好处在于进程之间是互相独立

的,每个task独享进程资源,没有互相干扰,监控方便,但是问题在于task之间不方便共享数据,执行

效率比较低。比如多个maptask读取不同数据源文件需要将数据源加载到每个maptask中,造成重复

加载和浪费内存。而基于线程的方式计算是为了数据共享和提高执行效率,Spark采用了线程的最小的

执行单位,但缺点是线程之间会有资源竞争。

Spark和Hadoop的区别和比较:

1.原理比较

Hadoop和Spark都是并行计算,两者都是用MR模型进行计算

Hadoop一个作业称为一个Job,Job里面分为MapTask和ReduceTask阶段,每个Task都在自己的进程

中运行,当Task结束时,

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档