网站制作视频教程,网站建设国内排行,wordpress返回500,网络设计报告提纲范文Spark#xff0c;是分布式计算平台#xff0c;是一个用scala语言编写的计算框架#xff0c;基于内存的快速、通用、可扩展的大数据分析引擎 Hadoop#xff0c;是分布式管理、存储、计算的生态系统#xff1b;包括HDFS#xff08;存储#xff09;、MapReduce#xff08;… Spark是分布式计算平台是一个用scala语言编写的计算框架基于内存的快速、通用、可扩展的大数据分析引擎 Hadoop是分布式管理、存储、计算的生态系统包括HDFS存储、MapReduce计算、Yarn资源调度 一、Spark VS Hadoop 概览
Hadoop和Spark都是并行计算两者都是用MR模型进行计算 Hadoop一个作业称为一个JobJob里面分为Map Task和Reduce Task阶段每个Task都在自己的进程中运行当Task结束时进程也会随之结束
Spark用户提交的任务称为application一个application对应一个SparkContextapp中存在多个job每触发一次action操作就会产生一个job。这些job可以并行或串行执行每个job中有多个stagestage是shuffle过程中DAGScheduler通过RDD之间的依赖关系划分job而来的每个stage里面有多个task组成taskset由TaskScheduler分发到各个executor中执行executor的生命周期是和app一样的即使没有job运行也是存在的所以task可以快速启动读取内存进行计算。 ps一个Application - 多个job -一个job多个stage - 一个stage多个task mapreduce 读 – 处理 - 写磁盘 – 读 - 处理 - 写 spark 读 - 处理 - 处理 --需要的时候写磁盘 - 写
HadoopSpark类型基础平台包括计算、调度、存储分布式计算工具场景大规模数据集上的批处理迭代计算、交互式计算、流计算价格对机器要求低、便宜对内存有要求、相对较贵编程范式MapReduceAPI较为底层、适应性差RDD组成DAG有向无环图API较为顶层方便使用数据存储结构MapReduce计算结果存在HDFS磁盘上延迟大RDD中间运算结果存在内存上延迟小运行方式Task以进程的方式维护任务启动慢Task以线程的方式维护任务启动快
二、Spark相对Hadoop的优越性
Spark 是在借鉴了 MapReduce 之上发展而来的继承了其分布式并行计算的优点并改进了 MapReduce 明显的缺陷spark 与 hadoop 的差异具体如下
首先Spark 把中间数据放到内存中迭代运算效率高。MapReduce 中计算结果需要落地保存到磁盘上这样势必会影响整体速度而 Spark 支持 DAG 图的分布式并行计算的编程框架减少了迭代过程中数据的落地提高了处理效率。延迟加载
其次Spark 容错性高。Spark 引进了弹性分布式数据集 RDD (Resilient DistributedDataset) 的抽象它是分布在一组节点中的只读对象集合这些集合是弹性的如果数据集一部分丢失则可以根据“血统”即允许基于数据衍生过程对它们进行重建。另外在RDD 计算时可以通过 CheckPoint 来实现容错。
最后Spark 更加通用。mapreduce 只提供了 Map 和 Reduce 两种操作Spark 提供的数据集操作类型有很多大致分为Transformations 和 Actions 两大类。Transformations包括 Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort 等多种操作类型同时还提供 Count, Actions 包括 Collect、Reduce、Lookup 和 Save 等操作
三、 各方面比较
Spark对标于Hadoop中的计算模块MR但是速度和效率比MR要快得多Spark没有提供文件管理系统所以它必须和其他的分布式文件系统进行集成才能运作它只是一个计算分析框架专门用来对分布式存储的数据进行计算处理它本身并不能存储数据Spark可以使用Hadoop的HDFS或者其他云数据平台进行数据存储但是一般使用HDFSSpark可以使用基于HDFS的HBase数据库也可以使用HDFS的数据文件还可以通过jdbc连接使用Mysql数据库数据Spark可以对数据库数据进行修改删除而HDFS只能对数据进行追加和全表删除Spark数据处理速度秒杀Hadoop中MRSpark处理数据的设计模式与MR不一样Hadoop是从HDFS读取数据通过MR将中间结果写入HDFS然后再重新从HDFS读取数据进行MR再刷写到HDFS这个过程涉及多次落盘操作多次磁盘IO效率并不高而Spark的设计模式是读取集群中的数据后在内存中存储和运算直到全部运算完毕后再存储到集群中Spark是由于Hadoop中MR效率低下而产生的高效率快速计算引擎批处理速度比MR快近10倍内存中的数据分析速度比Hadoop快近100倍源自官网描述Spark中RDD一般存放在内存中如果内存不够存放数据会同时使用磁盘存储数据通过RDD之间的血缘连接、数据存入内存中切断血缘关系等机制可以实现灾难恢复当数据丢失时可以恢复数据这一点与Hadoop类似Hadoop基于磁盘读写天生数据具备可恢复性Spark引进了内存集群计算的概念可在内存集群计算中将数据集缓存在内存中以缩短访问延迟对7的补充Spark中通过DAG图可以实现良好的容错。
四、三大分布式计算系统
Hadoop适合处理离线的静态的大数据
Spark适合处理离线的流式的大数据
Storm/Flink适合处理在线的实时的大数据。
*、本文参考
Spark和Hadoop的区别和比较
Spark与Hadoop相比的优缺点
[Spark 和 Hadoop MapReduce 对比](