小象学院Spark+Python大数据分析实战
什么是Spark?
Apache Spark是由加州伯克利分校AMP实验室开发的通用大数据处理框架。Spark提供了大数据处理的一站式解决方案,以Spark Core为基础推出了Spark SQL、Spark Streaming、MLlib、GraphX、SparkR等组件。整个Spark生态体系称为BDAS,即:伯克利数据分析栈。
Spark特点
Spark具有运行速度快、易用性好、通用型强和随处运行的特点。
运行速度快(Speed)
如果Spark基于内存读取,速度是Hadoop的100倍;使用磁盘读取,也是Hadoop的十倍。spark之所以能够比Hadoop快,有两点主要原因:基于内存计算和引入DAG执行引擎。
Spark在迭代计算过程中数据默认是保存在内存中,后续计算直接读取内存中的结果即可。而Hadoop每一步计算都是直接将结果存储在磁盘中,后续的计算从磁盘重新读取上次计算结果。基于内存读取数据的速度比磁盘读取的速度高出两个数量级。
Spark在实际执行任务前,将计算步骤根据依赖关系形成DAG图(有向无环图),在执行过程中就会根据DAG图的顺序来执行,这个过程还会对DAG进行计算路径的优化,大大减少了I/O读取操作。而Hadoop需要手动或者借助Oozie等工具来处理这些步骤之间的关系。