• 27-spark各版本对比


    一、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
    在这里插入图片描述

    (2)自适应查询(Adaptive Query Execution)
    查询执行计划的优化,允许 Spark Planner 在运行时执行可选的执行计划,这些计划将基于运行时统计数据进行优化。AQE目前提供了三个功能,动态合并shuffle partitions、动态调整join策略、动态优化倾斜的join

  • 相关阅读:
    【穿透科技】P2P穿透模块介绍
    Spark pivot数据透视从句
    WPF工控机textbox获得焦点自动打开软键盘
    一种tcp传输json包时出现包不完整、粘包的解决方案
    java计算机毕业设计田径运动会管理系统源程序+mysql+系统+lw文档+远程调试
    P95陷阱
    点云处理开发测试题目
    LeetCode 1588. Sum of All Odd Length Subarrays
    k8s-部署rancher-页面化管理
    浅谈C++|STL之list+forward_list篇
  • 原文地址:https://blog.csdn.net/huaxing_ba/article/details/125548266