Spark 版本 0.9.1

Spark 0.9.1 是一个维护版本,包含错误修复、性能改进、YARN 上的更佳稳定性以及 Scala 和 Python API 的更好一致性。我们建议所有 0.9.0 用户升级到此稳定版本。此版本共有 37 位开发者贡献。

您可以下载 Spark 0.9.1 的源代码包 源代码包 (6 MB tgz) 或针对 Hadoop 1 / CDH3CDH4Hadoop 2 / CDH5 / HDP2 的预构建包 (160 MB tgz)。版本签名和校验和可在 Apache 官方下载站点获取。

Spark 核心的改进和错误修复

  • 修复了外部溢出中的哈希冲突错误 [SPARK-1113]
  • 修复了 Spark 的 log4j 与依赖其他日志后端的用户的冲突 [SPARK-1190]
  • 修复了 Maven 构建中 Spark assembly jar 缺少 GraphX 的问题
  • 修复了由于 map 输出状态超出 Akka 帧大小而导致的静默故障 [SPARK-1244]
  • 移除了 Spark 对 ASM 不必要的直接依赖 [SPARK-782]
  • 由于 LGPL 许可证冲突,从默认构建中移除了 metrics-ganglia [SPARK-1167]
  • 修复了分发 tarball 中不包含 spark assembly jar 的错误 [SPARK-1184]
  • 修复了由于 map 输出位置中存在 null 而导致无限 NullPointerException 故障的错误 [SPARK-1124]
  • 修复了调度器数据结构在作业后清理中的错误
  • 增加了制作包含 Tachyon 的分发 tarball 的功能。这简化了 Spark 与 Tachyon 的部署。
  • 增加了对 HBase 的 TableOutputFormat 和其他扩展 Configurable 的 OutputFormat 的支持

Spark-on-YARN 的稳定性改进

对 YARN 部署模式进行了多项错误修复

  • 修复了读取/写入 yarn 用户没有权限但提交用户有权限的文件的错误 [SPARK-1051]
  • 修复了当 YARN 注册失败时导致 Spark 应用程序停滞的错误 [SPARK-1032]
  • yarn-client 模式下获取 HDFS 委托令牌的竞态条件 [SPARK-1203]
  • 修复了 yarn-client 模式无法正确退出的错误 [SPARK-1049]
  • 修复了 ADD_JAR 环境变量未能正确添加自定义 jar 的回归错误 [SPARK-1089]

其他部署场景的改进

  • Spark 用于启动 EC2 集群的 EC2 脚本中增加了对 C3 EC2 实例的支持。
  • 修复了独立模式下 jar URL 验证中的错误。

MLLib 的优化

  • 优化了 ALS 的内存使用 [MLLIB-25]
  • 优化了隐式 ALS 的 YtY 计算 [SPARK-1237]
  • ALS 中对负隐式输入的支援 [MLLIB-22]
  • ALS 中随机种子的设置 [SPARK-1238]
  • 更快地构建带截距的特征 [SPARK-1260]
  • 在 GLM 的 addIntercept 中检查截距和权重 [SPARK-1327]

PySpark 的错误修复和更好的 API 一致性

  • 修复了 Python 反序列化中的错误 [SPARK-1135]
  • 修复了长度超过 64K 字符串的序列化错误 [SPARK-1043]
  • 修复了当基础文件不可用时导致作业挂起的错误 [SPARK-1025]
  • 为 PySpark 增加了缺失的 RDD 操作 - top, zip, foldByKey, repartition, coalesce, getStorageLevel, setName 和 toDebugString

文档改进

  • Streaming:增加了从 spark-shell 运行流应用程序的文档
  • YARN:增加了在安全 HDFS 环境下以 yarn-client 模式运行 spark-shell 的文档

致谢名单

  • Aaron Davidson - mergeCombiners 中的错误修复
  • Aaron Kimball - 流式编程指南的改进
  • Andrew Ash - worker 注册日志中的错误修复和文档改进
  • Andrew Or - map 输出状态大小和外部溢出中哈希冲突的错误修复,以及流式编程指南的改进
  • Andrew Tulloch - MLLib 的小更新
  • Bijay Bisht - 修复了 Hadoop < 1.0.1 的 hadoop-client 问题,以及 Mesos + CDH4.5.0 上 Spark 的错误
  • Bouke van der Bijl - Python 反序列化中的错误修复
  • Bryn Keller - 对 HBase 的 TableOutputFormat 的支持
  • 陈超 - spark-shell 脚本中的错误修复,以及流式编程指南的改进
  • Christian Lundgren - 对 C3 EC2 实例类型的支持
  • Diana Carroll - PySpark 编程指南的改进
  • Emtiaz Ahmed - UI 错误修复
  • Frank Dai - MLLib 的代码清理
  • Henry Saputra - Scala Option 使用方面的更改
  • jianghan - Java 示例中的错误修复
  • Josh Rosen - PySpark 字符串序列化和异常处理中的错误修复
  • Jyotiska NK - PySpark 文档和示例的改进
  • Kay Ousterhout - 调度器处理任务失败的多项错误修复
  • Kousuke Saruta - 使用 https 访问 GitHub
  • Mark Grover - 分发 tar.gz 中的错误修复
  • Matei Zaharia - 处理由于 NPE 导致的任务失败以及清理调度器数据结构中的错误修复
  • 朱楠 - PySpark RDD.takeSample 和使用 ADD_JAR 添加 JARs 的错误修复 - 以及文档改进
  • Nick Lanham - 增加了制作包含 Tachyon 的分发 tarball 的功能
  • Patrick Wendell - ASM shading 中的错误修复,log4j 初始化修复,由于 LGPL 许可证而移除 Ganglia,以及其他杂项错误修复
  • Prabin Banka - PySpark 中 RDD.zip 和其他缺失的 RDD 操作
  • Prashant Sharma - PySpark 中的 RDD.foldByKey,以及其他 PySpark 文档改进
  • Qiuzhuang - 独立 worker 中的错误修复
  • Raymond Liu - 更改了 ZookeeperPersistenceEngine 中的工作目录
  • Reynold Xin - 文档和测试基础设施的改进
  • Sandy Ryza - 多项重要的 YARN 错误修复和改进
  • Sean Owen - MLLib 的 ALS 的错误修复和改进
  • 朱世雄 - 修复了 SimpleDateFormat 的线程不安全使用
  • shiyun.wxm - UI 错误修复
  • Stevo Slavić - window 的 run-example 脚本中的错误修复
  • Tathagata Das - 流式文档的改进
  • Tom Graves - YARN 部署模式中的错误修复
  • 孟祥睿 - ALS 和 GLM 的改进,以及 MLLib 编程指南


Spark 新闻存档