一、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,容错的,端到端一次性的流数据处理,并且不需要用户关注数据流
三、spark3.x
(1)动态分区裁剪(Dynamic Partition Pruning)
是指根据运行时推断出的信息来进一步进行分区裁剪,达到数据剪枝优化,在之前的版本中,无法进行动态计算代价,在运行时会扫出大量无效的数据,经过这个优化,性能大概提升了33倍。主要参数 spark.sql.optimizer.dynamicPartitionPruning.enabled = true
文章来源:https://www.toymoban.com/news/detail-469673.html
(2)自适应查询(Adaptive Query Execution)
查询执行计划的优化,允许 Spark Planner 在运行时执行可选的执行计划,这些计划将基于运行时统计数据进行优化。AQE目前提供了三个功能,动态合并shuffle partitions、动态调整join策略、动态优化倾斜的join文章来源地址https://www.toymoban.com/news/detail-469673.html
到了这里,关于27-spark各版本对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!