一、spark1.x
(1)引入内存计算的理念解决中间结果落盘导致的效率低下。早期官网中给出数据,在理想状况下,性能可达到MR的100倍
(2)支持丰富的API,支持多种编程语言,如python、scala、java、R等,代码量减少5倍以上,并且受众群体更广
(3)提供一站式的解决方案,同时支持离线、微批、图计算和机器学习
(4)支持多部署模式:支持Standalone、Cluster等多种模式
二、spark2.x
(1)引入Tungsten engine进行内存优化
(2)更好的SQL支持
在SQL支持层面,1.0阶段,SQL的很多功能并不能很好的支持,在2.0阶段,引入了ANSI SQL解析器,并且支持子查询,已经可以运行TPC-DS所有的99个查询,基本覆盖了常见的99%应用场景。
(3)引入Structured Streaming
Structured Streaming是构建在Spark SQL引擎上的流式数据处理引擎,使用户可以像使用静态RDD一样来编写流式计算过程。当流数据连续不断的产生时,Spark SQL将会增量的,持续不断的处理这些数据并将结果更新到结果集中。Structured Streaming系统通过checkpoints和write ahead logs方式保证端到端数据的准确一次性以及容错性。简而言之,Structured Streaming提供了快速的,Scalable,容错的,端到端一次性的流数据处理,并且不需要用户关注数据流