Spark 发布 3.1.1

Apache Spark 3.1.1 是 3.x 系列的第二个版本。此版本作为 Zen 项目的一部分,增加了 Python 类型注解和 Python 依赖管理支持。其他主要更新包括改进的 ANSI SQL 合规性支持、结构化流中的历史服务器支持,以及 Kubernetes 和 Kubernetes 及 Standalone 中的节点退役的通用可用性 (GA)。此外,此版本继续专注于可用性、稳定性和完善,同时解决了大约 1500 个问题。

要下载 Apache Spark 3.1.1,请访问下载页面。您可以查阅 JIRA 以获取详细更改。我们在此整理了一份高层次的更改列表,按主要模块分组。

核心和 Spark SQL

亮点

ANSI SQL 兼容性增强

性能增强

  • 无需 shuffle 服务的宿主机本地 shuffle 数据读取 (SPARK-32077)
  • 在重新分区节点前移除冗余排序 (SPARK-32276)
  • 部分下推谓词 (SPARK-32302, SPARK-32352)
  • 通过扩展下推过滤器 (SPARK-33302)
  • 通过 CNF 转换下推更多可能的谓词到 Join (SPARK-31705)
  • 通过保留广播哈希连接的输出分区来消除 shuffle (SPARK-31869)
  • 通过改进重新排序连接键来消除 shuffle (SPARK-32282)
  • 通过规范化输出分区和排序顺序来消除 shuffle (SPARK-33399)
  • 改组哈希连接改进 (SPARK-32461)
    • 保留改组哈希连接构建侧分区 (SPARK-32330)
    • 保留哈希连接 (BHJ 和 SHJ) 流侧排序 (SPARK-32383)
    • 合并改组哈希连接的分桶表 (SPARK-32286)
    • 为改组哈希连接添加代码生成 (SPARK-32421)
    • 在改组哈希连接中支持全外连接 (SPARK-32399)
  • 支持带全阶段代码生成的项目中的子表达式消除 (SPARK-33092)
  • 支持条件表达式中的子表达式消除 (SPARK-33337)
  • 支持解释表达式评估的子表达式消除 (SPARK-33427)
  • 支持解释谓词的子表达式消除 (SPARK-33540)
  • 其他优化器规则
    • 规则 ExtractSingleColumnNullAwareAntiJoin (SPARK-32290)
    • 规则 EliminateNullAwareAntiJoin (SPARK-32573)
    • 规则 EliminateAggregateFilter (SPARK-32540)
    • 规则 UnwrapCastInBinaryComparison (SPARK-32858)
    • 规则 DisableUnnecessaryBucketedScan (SPARK-32859)
    • 规则 CoalesceBucketsInJoin (SPARK-31350)
    • 从不带项目的生成中修剪不必要的嵌套字段 (SPARK-29721)
    • 从聚合和扩展中修剪不必要的嵌套字段 (SPARK-27217)
    • 从按表达式重新分区和连接中修剪不必要的嵌套字段 (SPARK-31736)
    • 修剪装饰性变体中不必要的嵌套字段 (SPARK-32163)
    • 从窗口和排序中修剪不必要的嵌套字段 (SPARK-32059)
    • 优化 CreateArray/CreateMap 的大小,使其等于其子节点的大小 (SPARK-33544)

可扩展性增强

  • 阶段级别资源配置和调度 (SPARK-27495)
  • 用于持久化 shuffle 数据的远程存储 (SPARK-25299)
  • 允许使用自定义 shuffle 管理器和外部 shuffle 服务 (SPARK-33037)
  • 在 DataSourceV2 上添加 SupportsPartitions API (SPARK-31694)
  • 在 DataSourceV2 上添加 SupportsMetadataColumns API (SPARK-31255)
  • 使 SQL 缓存序列化可插拔 (SPARK-32274)
  • 在 TableCatalog.dropTable 中为 v2 目录引入“purge”选项 (SPARK-33364)

连接器增强

功能增强

其他值得注意的更改

  • 在 Spark 文档站点中提供搜索功能 (SPARK-33166)
  • 默认使用 Apache Hadoop 3.2.0 (SPARK-32058, SPARK-32841)
  • 将 Apache Arrow 升级到 2.0.0 (SPARK-33213)
  • Kubernetes 通用可用 (GA) (SPARK-33005)
  • 在 thrift 服务器中启用 Java 8 时间 API (SPARK-31910)
  • 在 UDF 中启用 Java 8 时间 API (SPARK-32154)
  • 聚合 sum 与小数的溢出检查 (SPARK-28067)
  • 修复动态分区覆盖模式下的提交冲突 (SPARK-27194, SPARK-29302)
  • 移除对 slave、blacklist 和 whitelist 的引用 (SPARK-32004, SPARK-32036, SPARK-32037)
  • 移除 shuffle map 阶段的任务结果大小检查 (SPARK-32470)
  • 通用化 ExecutorSource 以公开用户指定的文件系统方案 (SPARK-33476)
  • 添加 StorageLevel.DISK_ONLY_3 (SPARK-32517)
  • 在执行器 Web UI 中公开执行器内存指标 (SPARK-23432)
  • 在阶段级别(Stages 选项卡中)公开执行器内存指标 (SPARK-26341)
  • 修复 YARN 集群模式下显式设置 spark.ui.port 的问题 (SPARK-29465)
  • 添加 spark.submit.waitForCompletion 配置以控制 Standalone 集群模式下 spark-submit 的退出 (SPARK-31486)
  • 对于内置 Hadoop 的 Spark 发行版,不要传播 Hadoop 的 classpath (SPARK-31960)
  • 修复高负载下 SHS 中作业间歇性消失的问题 (SPARK-33841)
  • 在 SHS 中编辑应用程序日志的敏感属性 (SPARK-33504)
  • 设置 yarn.Client 以打印指向驱动程序 stdout/stderr 的直接链接 (SPARK-33185)
  • 修复广播分片存储失败时的内存泄漏 (SPARK-32715)
  • 使 BlockManagerMaster 驱动程序心跳超时可配置 (SPARK-34278)
  • 统一和完善缓存行为 (SPARK-33507)

行为变更

请阅读每个组件的迁移指南:Spark CoreSpark SQL

编程指南:Spark RDD 编程指南Spark SQL、DataFrames 和 Datasets 指南

PySpark

Zen 项目

其他值得注意的更改

行为变更

请阅读 PySpark 的迁移指南。

编程指南:PySpark 入门PySpark 用户指南

结构化流

性能增强

  • 缓存超出 maxFilesPerTrigger 的已获取文件列表作为未读文件 (SPARK-30866)
  • 精简文件流源和接收器元数据日志的逻辑 (SPARK-30462)
  • 如果查询从压缩批次重新开始,则避免两次读取压缩元数据日志 (SPARK-30900)

功能增强

其他值得注意的更改

行为变更

请阅读 结构化流 的迁移指南。

编程指南:结构化流编程指南

MLlib

亮点

  • LinearSVC 分块输入向量 (SPARK-30642)
  • LogisticRegression 分块输入向量 (SPARK-30659)
  • LinearRegression 分块输入向量 (SPARK-30660)
  • AFT 分块输入向量 (SPARK-31656)
  • 添加对 ML 中关联规则的支持 (SPARK-19939)
  • 为 LinearSVCModel 添加训练摘要 (SPARK-20249)
  • 为 RandomForestClassificationModel 添加摘要 (SPARK-23631)
  • 为 FMClassificationModel 添加训练摘要 (SPARK-32140)
  • 为 MultilayerPerceptronClassificationModel 添加摘要 (SPARK-32449)
  • 将 FMClassifier 添加到 SparkR (SPARK-30820)
  • 添加 SparkR LinearRegression 封装器 (SPARK-30818)
  • 将 FMRegressor 封装器添加到 SparkR (SPARK-30819)
  • 为 vector_to_array 添加 SparkR 封装器 (SPARK-33040)
  • 自适应分块实例 - LinearSVC (SPARK-32907)
  • 使 CrossValidator/TrainValidateSplit/OneVsRest Reader/Writer 支持 Python 后端评估器/评估器 (SPARK-33520)
  • 通过 GEMV 改进 ML ALS recommendForAll 的性能 (SPARK-33518)
  • 添加 UnivariateFeatureSelector (SPARK-34080)

其他值得注意的更改

  • GMM 在一个作业中计算摘要并更新分布 (SPARK-31032)
  • 移除 ChiSqSelector 对 mllib.ChiSqSelectorModel 的依赖 (SPARK-31077)
  • 在 testChiSquare 中展平测试结果数据帧 (SPARK-31301)
  • MinHash keyDistance 优化 (SPARK-31436)
  • 基于三角不等式的 KMeans 优化 (SPARK-31007)
  • 在 ClusteringEvaluator 中添加权重支持 (SPARK-31734)
  • 在 Evaluators 中添加 getMetrics (SPARK-31768)
  • 在 LinearRegressionSummary 中添加实例权重支持 (SPARK-31944)
  • 为 CrossValidator 添加用户指定的分折列 (SPARK-31777)
  • ML 参数在特征和调优中的默认值一致性 (SPARK-32310)
  • 修复 KMeans/BiKMeans 中的双重缓存 (SPARK-32676)
  • aft 转换优化 (SPARK-33111)
  • FeatureHasher 转换优化 (SPARK-32974)
  • 为数据帧列添加 array_to_vector 函数 (SPARK-33556)
  • ML 参数在分类、回归、聚类和 FPM 中的默认值一致性 (SPARK-32310)
  • Summary.totalIterations 大于 maxIters (SPARK-31925)
  • 树模型预测优化 (SPARK-32298)

行为变更

请阅读 MLlib 的迁移指南。

编程指南:机器学习库 (MLlib) 指南

SparkR

行为变更

有关详细信息,请阅读迁移指南

编程指南:SparkR (R on Spark)

GraphX

编程指南:GraphX 编程指南

废弃和移除

已知问题

  • [SPARK-33392] 在 V1 ALTER TABLE .. SET LOCATION 中尊重大小写敏感性
  • [SPARK-34531] 移除 PrometheusServlet 中的 Experimental API 标签
  • [SPARK-34515] 修复 getPartitionsByFilter 期间 InSet 包含 null 值时的 NPE
  • [SPARK-34497] JDBC 连接提供者未从 JVM 安全上下文中移除 Kerberos 凭证
  • [SPARK-34490] 如果表被删除,表可能被解析为视图
  • [SPARK-34473] 避免 DataFrameReader.schema(StructType) 中的 NPE
  • [SPARK-34436] DPP 支持 LIKE ANY/ALL

鸣谢

最后但同样重要的是,如果没有以下贡献者,本次发布是不可能实现的:Abhishek Dixit, Adam Binford, Ajith S, Akshat Bordia, Alessandro Patti, Alex Favaro, Ali Afroozeh, Ali Smesseim, Allison Wang, Ankit Srivastava, Anton Okolnychyi, Antonin Delpeuch, Artsiom Yudovin, Arwin Tio, Attila Zsolt Piros, Baohe Zhang, Bo Yang, Bo Zhang, Brandon Jiang, Bruce Robbins, Bryan Cutler, CC Highman, Chandni Singh, Chao Sun, Chen Zhang, Cheng Su, Chuliang Xiao, DB Tsai, Dale Clarke, Daniel Himmelstein, Daniel Moore, David Toneian, Denis Pyshev, Devesh Agrawal, Dilip Biswal, Dmitry Sabanin, Dongjoon Hyun, Du Ripeng, Emilian Bold, Eren Avsarogullari, Eric Lemmon, Eric Wu, Erik Krogen, Fabian Höring, Farhan Khan, Farooq Qaiser, Fei Wang, Fokko Driesprong, Frank Yin, Fuwang Hu, Gabor Somogyi, Gengliang Wang, Gera Shegalov, German Schiavon Matteo, Goki Mori, Guangxin Wang, Gustavo Martin Morcuende, Herman Van Hovell, Holden Karau, Huang Yi, Haejoon Lee, Huaxin Gao, Hyukjin Kwon, Izek Greenfield, Jackey Lee, Jacob Kim, Jalpan Randeri, Jatin Puri, Jiaan Geng, Jinxin Tang, Josh Soref, Jonathan Lafleche, Jungtaek Lim, Karen Feng, Karol Chmist, Kaxil Naik, Kazuaki Ishizaki, Ke Jia, Keiji Yoshida, Kent Yao, Kevin Su, Kevin Wang, Koert Kuipers, Kousuke Saruta, Kyle Bendickson, Lantao Jin, Leanken Lin, Liang Zhang, Liang-Chi Hsieh, Linhong Liu, Lipeng Zhu, Lu Lu, Luca Canali, Maciej Szymkiewicz, Manu Zhang, Marcelo Vanzin, Maryann Xue, Matthew Cheah, Maxim Gekk, Michael Chirico, Michael Munday, Michał Wieleba, Min Shen, Nan Zhu, Nicholas Chammas, Nicholas Marcott, Nik Vanderhoof, Onur Satici, Pablo Langa, Pascal Gillet, Paul Reidy, Pavithra Ramachandran, Pedro Rossi, Peter Toth, Philipse Guo, Piotr Grzegorski, Prakhar Jain, Prashant Sharma, Qianyang Yu, Qilong Su, Rajat Ahuja, Rakesh Raushan, Rameshkrishnan Muthusamy, Raphael Auv, Richard Penney, Robert (Bobby) Evans, Rohit Mishra,Ruifeng Zheng, Ryan Blue, Ryotaro Tsuzuki, Samir Khan, Samuel Souza, Sandeep Katta, Sander Goos, Saurabh Chawla, Sean Owen, Seongjin Cho, Shane Knapp, Shanyu Zhao, Shaoyun Chen, Shixiong Zhu, Shruti Gumma, Srinivas Rishindra Pothireddi, Stavros Kontopoulos, StefanXiepj, Stijn De Haes, Stuart White, Sudharshann D, Sunitha Kambhampati, Takeshi Yamamuro, Takuya UESHIN, Tanel Kiis, Tathagata Das, Terry Kim, Thomas Graves, Tianshi Zhu, Tom Howland, Tom Van Bussel, Udbhav Agrawal, Uncle Gen, Utkarsh Agarwal, Venkata Krishnan Sowrirajan, Vlad Glinsky, Warren Zhu, Weichen Xu, Wenchen Fan, William Hyun, Wing Yew Poon, Xianyin Xin, Xiao Li, Xiduo You, Xingbo Jiang, Xinrong Meng, Xinyi Yu, Xuedong Luan, Yang Jie, Yaroslav Tkachenko, Ye Zhou, Yi Wu, Yi Zhu, Yu Zhong, Yuanjian Li, Yuexin Zhang, Yuming Wang, Yuning Zhang, Zhen Li, Zhenhua Wang, Zhicheng Jin, Zirui Xu, Zuo Dao, akiyamaneko, artiship, cristichircu, dzlab, huangtianhua, liucht-inspur, manubatham20, waitinfuture, wang-zhun, yzjg


Spark 新闻存档

最新消息

存档