写点什么

Spark 3.0 新特性抢先看

Spark 3.0 新特性抢先看

2020 年 5 月 07 日

Spark 3.0 新特性抢先看

记得 Databricks 研发工程师王耿亮老师去年在分享 Spark 新特性议题的时候,稍微透露了一些 关于 Spark 3.0 版本特性的内容,但具体的性能细节可以关注今年 ASF 和 Apache Spark PMC 最终的发布信息。这里做一些简单的介绍,具体技术细节请关注 9 月 11 日深圳站ArchSummit全球架构师峰会演讲。



Accelerator-aware Scheduler

作为 Project Hydrogen 的延续,在 Spark 3.0 版本里支持 GPU Aware Scheduling 调度,广泛用于加速特定应用,比如深度学习等。


自适应查询优化

这是 Databricks 和 Intel 中国团队在做的项目(SPARK-31412),基于已完成的执行计划节点的统计数据,优化剩余的查询执行计划,它能够支持:动态合并小的 partition 减少 Reducer 的数量;将 Sort Merge Join 转换为 Broadcast Hash Join;动态分割相对比较大的 partition 从而更好地处理数据倾斜。以下图为例:



这是一个典型的 Spark 任意操作过程,读取两个文件,而使用 Adaptive Execution 方法之后,将 Sort Merge Join 转换为 Broadcast Hash Join,性能也有了很大的提升。


Data Source API V2

发布 Data Source API,其设计比较合理,性能更稳定,批处理和流处理使用统一的 API。其背后的历史原因是,第一个版本的 Data Source API 在实现 Data Source 过程中不是很方便,后来做了 FileFormat。但是流处理的时候又使用另一套 API。所以社区花了很多时间把 API 都整合起来,并且增加了新的 Catalog plugin API(SPARK-31121)。


Apache Spark 3.0 其他目标:

  1. 支持 JDK 11

  2. 动态分区剪枝 (SPARK-11150)

  3. Redesigned pandas UDFs with type hints (SPARK-28264)


• 支持 Hadoop 3.x


• Hive execution 从 1.2.1 升级至 2.3.7


• Scala 2.12 GA


• 更加遵从 ANSI compliance


• Structured Steaming UI


Pandas DataFrame vs Spark DataFrame


很多数据科学家之前在学数据分析的时候使用 Python 的 Pandas,但是真正到了生产环境,Pandas 只能运行在一台机器上,而且是单线程,性能和可扩展性有限。这个时候需要转到 Spark,但是受到 API 区别,所以会有一些局限。



但是后来开源了 Koalas,目标是使用 Pandas API 可以直接运行在 Spark,能够支持数据科学家更好的无缝迁移到 Spark。


【活动推荐】

关于 Spark 3.0 新特性的解读,我们邀请王耿亮老师在今年 9 月 11 日 ArchSummit 全球架构师峰会(深圳站)上详细介绍,包括 Delta Lake 新功能介绍、设计思路细节、用户在使用过程中遇到的坑(案例),以及解决方法。感兴趣的可以点击查看会议官网了解详情。


2020 年 5 月 07 日 14:271841
用户头像

发布了 97 篇内容, 共 31.3 次阅读, 收获喜欢 87 次。

关注

评论 2 条评论

发布
用户头像
求门票
2020 年 05 月 09 日 00:24
回复
哥哥,免费无好货,来,我给你折扣票,内容保质保量。欢迎联系。
2020 年 05 月 13 日 21:43
回复
没有更多了
发现更多内容

CSS07 - 伪类

桃夭十一里

html/css

一个正确的编程思维

程序员吴师兄

28天写作

文档驱动开发模式在 AIMS 中的应用与实践

华为云开发者社区

Web 代码 API 文档

VUE项目性能优化实践——通过懒加载提升页面响应速度

Geek_Willie

Vue

在onelogin中使用OpenId Connect Implicit Flow

程序那些事

权限系统 程序那些事 openid 权限架构 onelogin

甲方日常 82

句子

随笔杂谈

如何使用Eclipse内存分析工具定位内存泄露

Java老k

Java 内存泄露

【CSS】CSS对大小写敏感吗?

学习委员

28天写作

边缘计算安全技术研究

华为云原生团队

云计算 大数据 云原生 边缘计算 华为云

数据库表数据量大读写缓慢如何优化(1)【冷热分离】

我爱娃哈哈😍

大数据 架构 海量数据库的设计与实践 优化 数据库优化

CSS08 - CSS特性

桃夭十一里

html/css

CSS09 - 文本&背景属性

桃夭十一里

html/css

LeetCode题解:111. 二叉树的最小深度,BFS,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

【Mysql-InnoDB系列】InnoDB架构

程序员架构进阶

MySQL 架构 innodb 28天写作

volatile 关键字精讲

伯阳

Java volatile 关键字 后端开发 多线程与高并发

甲方日常 81

句子

随笔杂谈

如何使用Eclipse内存分析工具定位内存泄露

AI乔治

Java eclipse 架构

俯瞰Dubbo全局,阅读源码前必须掌握这些!!

冰河

架构 分布式 微服务 dubbo 服务治理

开始的开始-可能是最早提交的28天写作活动作品

石君

28天写作

数据中心“容灾”和“备份”的区别

一次系统调用时间过长追踪完整教程案例

AI乔治

Java Linux 架构

还在手动写数据库文档吗?试试这个工具,划水干活儿两不误!

我爱娃哈哈😍

数据库 文档生成

要想软件“一想之美”,UI测试少不了

华为云开发者社区

软件 测试 华为云

Spark HistoryServer日志解析&清理异常

笨小康

大数据 spark hdfs

杜绝标题党,好的标题是成功的99%

xcbeyond

方法论 28天写作 写作技巧

如果你听说过 Elastic Certified Engineer

escray

七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

从七日更,到28天写作挑战,我无法拒绝的原因

梁龙先森

前端 编程语言 28天写作

智慧公安大数据可视化分析平台开发,重点人员管控平台建设

WX13823153201

深入理解Nginx的四级指针

赖猫

c++ nginx Linux Nginx源码

CSS06 - 标签的显示模式与转换

桃夭十一里

html/css

不愧是Alibaba技术官:程序员必会的架构知识清单,如何让你技术上的提升面试时的丰收

Java架构之路

Java 程序员 架构 面试 编程语言

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

Spark 3.0 新特性抢先看-InfoQ