专栏首页Hadoop实操0785-基于CDP7.1.1的Spark3.0技术预览版本发布

0785-基于CDP7.1.1的Spark3.0技术预览版本发布

今天Cloudera正式宣布发布CDS3,基于Apache Spark 3.0 preview2 release,参考:

https://spark.apache.org/news/spark-3.0.0-preview2.html

这是一个实验版本,建议用于测试或者技术预研,不建议在生产系统中使用。而且这个版本不受Cloudera Support支持。对于Spark3的新特性,可以参考文章《开源生态的新发展:Apache Spark 3.0、Koala和Delta Lake》。

以下是Spark3的关键新特性:

1.Spark3的TPC-DS性能进一步提升;

2.语言支持

a)Scala version is upgraded to 2.12

b)JDK11 is fully supported.

c)Python3.6+ is supported. Python 2 and Python 3 prior to version 3.6 are deprecated

3.Adaptive execution of Spark SQL

a)对于AQE而言,最重要的问题就是什么时候去重新计算优化执行计划。Spark任务的算子如果管道排列,依次并行执行。然而,shuffle或者broadcast exchange会打断算子的排列执行,我们称其为物化点(Materialization Points),并且用"Query Stages"来代表那些被物化点所分割的小片段。每个Query Stage会产出中间结果,当且仅当该stage及其并行的所有stage都执行完成后,下游的Query Stage才能被执行。所以当上游部分stage执行完成,partitions的统计数据也获取到了,并且下游还未开始执行,这就给AQE提供了reoptimization的机会。在查询开始时,生成完了执行计划,AQE框架首先会找到并执行那些不存在上游的stages。一旦这些stage有一个或多个完成,AQE框架就会将其在physical plan中标记为完成,并根据已完成的stages提供的执行数据来更新整个logical plan。基于这些新产出的统计数据,AQE框架会执行optimizer,根据一系列的优化规则来进行优化;AQE框架还会执行生成普通physical plan的optimizer以及自适应执行专属的优化规则,例如分区合并、数据倾斜处理等。于是,我们就获得了最新优化过的执行计划和一些已经执行完成的stages,至此为一次循环。接着我们只需要继续重复上面的步骤,直到整个query都跑完。

4.Dynamic Partition Pruning (DPP)

a)Spark 3.0引入了动态分区裁剪功能,这是SQL分析工作负载的一项重大性能改进。DPP背后的想法是将维度表上的筛选器集直接应用到事实表上,以便跳过扫描不需要的分区。DPP的优化是在逻辑计划优化和物理计划上实现的。它大大增强了许多TPC-DS查询的速度,并且可以很好的适应星型模型,而无需对表进行反范式化(Denormalization)。

5.Binary files data source

a)Spark 3.0支持二进制文件数据源。它可以读取二进制文件,并将每个文件转换为包含文件原始内容和元数据的一行。

6.DataSource V2 Improvements

a)Pluggable catalog integration

b)改进谓词下推功能,可通过减少数据加载来加快查询速度

7.YARN Features

a)Spark 3.0可以自动在YARN集群上发现GPU,并将任务调度到指定的GPU节点。

8.Kafka connector delegation token (0.10+)

a)对应用只需要配置Spark的参数就可以完成认证登录,而不是非需要使用JAAS配置登录。

该试验版本不支持以下组件:

  • Hive Warehouse Connector
  • Kudu
  • HBase Connector
  • Oozie
  • Livy
  • Zeppelin

参考文档:

https://docs.cloudera.com/runtime/7.1.1/cds-3/topics/spark-spark-3-overview.html

下载地址:

http://archive.cloudera.com/p/spark3/2.99.7110.0/csd/SPARK3_ON_YARN-3.0.0.2.99.7110.0-18.jar http://archive.cloudera.com/p/spark3/2.99.7110.0/parcels/

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f),作者:Fayson

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何使用Hue上创建一个完整Oozie工作流

    在使用CDH集群中经常会有一些特定顺序的作业需要在集群中运行,对于需要多个作业顺序执行的情况下,如何能够方便的构建一个完整的工作流在CDH集群中执行,前面Fay...

    Fayson
  • 如何部署active-active的Hadoop集群

    Fayson
  • Spark的HistoryServer不能查看到所有历史作业分析

    Spark的HistoryServer能正常查看之前的历史作业日志,但新提交的作业在执行完成后未能在HistoryServer页面查看。

    Fayson
  • SAP最佳业务实践:外委生产(249)-4采购收货

    创建向外交货请求 此项活动可为发送到供应商处的组件创建向外交货请求。 通过使用转包主控室,可生成向外交货(事务处理代码 ME2ON)。 可使用转包主控室来集中...

    SAP最佳业务实践
  • Android组件化专题 - 路由框架原理

    在路由框架之前,我们先了解什么是APT,并实践ButterKnife绑定findById的小功能。为什么先要讲解apt,因为路由的实现apt是核心的代码.看下面...

    用户3045442
  • Python 按分类样本数占比生成并随机获取样本数据

    已知样本分类,每种分类的样本占比数,及样本总数,需要随机获取这些分类的样本。比如,我有4种任务,分别为任务A,任务B,任务C,任务D, 每种任务需要重复执行的总...

    授客
  • SpringBoot优雅地发送邮件

    消息通知的形式也有很多,比如:短信、邮件、app推送等,本文主要给大家描述一下邮件通知的形式,因为邮件相比较其他通知渠道更方便实用(免费),除了简单文本邮件(已...

    JAVA葵花宝典
  • SpringBoot优雅地发送邮件

    消息通知的形式也有很多,比如:短信、邮件、app推送等,本文主要给大家描述一下邮件通知的形式,因为邮件相比较其他通知渠道更方便实用(免费),除了简单文本邮件(已...

    程序员小明
  • 简化开发|Lombok神器带你消除冗余代码

    Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一些注解来消除业务过程中冗余的代码,尤其是简单的Java模型对象(POJO)。而当我们如果...

    浅羽的IT小屋
  • 十分钟搞懂Java效率工具Lombok使用与原理

    Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它。Lombok是一种Java™实用工具,可...

    java思维导图

扫码关注云+社区

领取腾讯云代金券