Spark简介
1、spark是什么
一个快速、通用的集群计算平台。
2、spark特点
快速:
1、spark首先是基于mapreduce来优化的一个集群计算平台,他扩充了mapreduce的计算模型。
2、spark是基于内存计算的,那么基于内存的意思是什么呢?像我们平时计算数据很少会直接得到结果,都要经过几次的运算才可以得到一个准确的,精准的数值,那么每次计算都会产生一个中间的计算结果,我们还需要使用这个计算结果来继续运算,所以他会被暂时的保存。
但是保存地点无非就是存于硬盘或内存,存在硬盘中难免的就会进行多次额外的写入写出操作,而spark就是采用将中间结果存储在内存中来进行,这样会大大的减少运行的时间,增加计算效率,像处理相同的数据mapreduce的时间可能在几分钟到几小时,而spark会在几秒到几分钟之内完成。
通用:
spark的设计容纳了许多其他分布式处理系统的功能,比如批处理(hadoop)、交互查询(hive)、流处理(storm)等等,这样整合后会大大降低集群的维护成本。
开放:
在上次介绍scala的时候我们就讲过,scala的大火跟spark的兴起是息息相关的,因为scala是spark的底层代码,但是spark并不是只可以使用scala,它还提供了java、python等语言的API以及丰富的内置库。而且spark和hadoop、kafka等大数据工具的关系整合的很好。
3、spark和hadoop的比较
上面已经讲了许多spark的优点,并且也说到他可以和hadoop整合,那么二者的却别到底有哪些呢?
学习过一段时间的hadoop我们都会知道,hadoop是一个离线处理的大数据工具,他对处理的实时性要求不高,而spark适用于对时效性要求很高的场景,并且spark基于内存还可以适用于机器学习的场景。
但是并不代表spark就一定比hadoop优秀,因为我们学习大数据首先要知道我们学习的是一个生态系统,而不仅仅局限于某个工具,这个系统是由hadoop、spark、hive等等各种组件组成的一个大的生态圈,每个组件 都有自己的功能,比如spark虽然实时性好,但是无法持久化数据,还需要借助hadoop的HDFS来实现,这个生态系统是会随着时间的推进而越来越大,越来越丰富的。