当前位置:   article > 正文

spark产生的原因_启动spark的目的是什么

启动spark的目的是什么

一、spark产生的目的

spark产生:为了替代Mapreduce,解决Mapreduce计算短板
Hadoop生态体系:hdfs+zokeeper +mareduce/hive+hbase+storm+mahot+其他 工具;
spark体系:hdfs+zokeeper +spark+hbase+storm+mahot+其他 工具。

二、spark的设计初衷:
设计一个统一的计算引擎解决所有的各类型计算,包含计算类型:
1.离线批处理;
2.交互式查询
3.图计算
4.流失计算
5.机器学习/迭代计算
6.Spark R 科学计算,数据分析

三、spark和Mapreduce的对比之后的优势:
1.减少磁盘IO
MapReduce:基于磁盘
Spark 基于内存(尽量把临时数据缓存到内存)
2.增加并行度:
MapReduce:MapTask ReduceTask 一个进程一个Task(默认)
spark:ShuffleMapTask ResultTask 使用的是一个线程
3.避免重复计算:
可以吧把数据强制缓存到内存中,以供其他的task使用。
4.可选的shuffle和排序
4.1可选的shuffle
MapReduce:提供一种通用的shuffle
Combiner Partitioner sorter
shuffle的策略是一个固定的套路
如果设置了combiner会执行Combiner
如果设置的ReduceTask的个数超过1,那么Partitioner就会执行数据的分区;
如果有reducer节段的话,那么sortre的数据排序就一定会执行。
Spark的suffle:
提供了四重shuffle策略,分别适用不同的场景;
HaahShuffle,SortShuffle
4.2可选的排序:
MapReduce:如果有reducer节段的话,那么sortre的数据排序就一定会执行;
Spark:用户指定执行,否则不排序;
5.灵活的内存管理策略
要多少给多少,可以合理的分配到底哪个阶段哦,哪个组件,使用多少。
MapReduce:MapTask JVM在启动的时候就指定了最多能使用多少内存,如果超出OOM
Spark:worker启动了很多个进程executor,每个executor并发运行多个线程,每个线程执行一个程序;
每个executor和每一个task都会指定固定的内存大小去使用,如果excutor的内存固定,task的内存也有上限,也可能出现OOM
但是:spark的任务线程,出来能使用JVM的内存之外,还可以使用操作系统的内存。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/389418
推荐阅读
相关标签
  

闽ICP备14008679号