Spark 0.8.1 版本发布

Apache Spark 0.8.1 是 Spark Scala 2.9 版本的一个维护和性能改进版本。它还增加了一些新特性,例如独立模式的高可用性,这些特性将会出现在 Spark 0.9 中,但是开发者希望在 Scala 2.9 中也能使用。0.8.1 版本的贡献者共有 41 位。

YARN 2.2 支持

增加了对在 YARN 2.2 及更高版本上运行 Spark 的支持。由于 YARN API 在之前版本和 2.2+ 之间发生了变化,Spark 0.8.0 不支持此功能。有关如何为 YARN 2.2+ 构建 Spark 的具体说明,请参阅 YARN 文档。我们还包含了 YARN 2.2 的预编译二进制文件。

独立集群管理器的高可用模式

独立集群管理器现在具有高可用性 (H/A) 模式,可以容忍 master 故障。 这对于长时间运行的应用程序(例如流式作业和 Shark 服务器)特别有用,在这些应用程序中,调度程序 master 以前是单点故障。 有关部署 H/A 模式的说明包含在 文档中。 当前的实现使用 Zookeeper 进行协调。

性能优化

此版本增加了一些性能优化

  • 优化了 shuffle 数据的哈希表 - 减少内存和 CPU 消耗
  • JobConfs 的高效编码 - 提高了阶段从 HDFS、S3 和 HBase 读取大量块时的延迟
  • Shuffle 文件合并(默认关闭)- 减少了大型 shuffle 中创建的文件数量,从而提高了文件系统的性能。此更改在比 ext3 新的文件系统(我们建议使用 ext4 或 XFS)上效果最佳,它将成为 Spark 0.9 中的默认设置,但为了兼容性,我们默认将其关闭。我们建议用户启用此功能,除非他们使用 ext3,方法是将 spark.shuffle.consolidateFiles 设置为“true”。
  • Torrent 广播(默认关闭)- 一种更快的广播大型对象的实现。
  • 支持获取大型结果集 - 允许任务返回大型结果,而无需调整 Akka 缓冲区大小。

MLlib 改进

  • 为隐式反馈添加了一种新的交替最小二乘矩阵分解变体。

Python 改进

  • 现在可以直接从 Python 设置 Spark 配置属性
  • Python 现在支持排序操作
  • 累加器现在有一个显式命名的 add 方法

新的运算符和可用性改进

  • local:// URI - 允许用户指定从节点上已存在的文件作为依赖项
  • UI 中添加了一个新的“结果获取”状态
  • 新的 Spark Streaming 运算符:transformWithleftInnerJoinrightOuterJoin
  • 新的 Spark 运算符:repartition
  • 现在可以在独立和 Mesos 模式下以其他用户身份运行 Spark 应用程序

值得注意的 Bug 修复

  • 修复了一个边缘情况,该情况可能导致 Kafka 摄取到 Spark Streaming 的数据丢失
  • 修复了某些任务失败后调度程序挂起的问题
  • 修复了一个打包错误,该错误阻止了流式示例中的日志输出
  • 在某些 UI 字段中修复了排序顺序

贡献者

  • Michael Armbrust – 构建修复
  • Pierre Borckmans – 文档中的拼写错误修复
  • Evan Chan – local:// 依赖 jar 的方案
  • Ewen Cheslack-Postava – python 累加器的 add 方法,支持在 python 中设置配置属性
  • Mosharaf Chowdhury – 优化的广播实现
  • Frank Dai – 文档修复
  • Aaron Davidson – shuffle 文件合并,独立调度程序的 H/A 模式,清理了块 ID 的表示,多项改进和错误修复
  • Tathagata Das – 新的流式运算符,修复了 kafka 并发错误
  • Ankur Dave – 支持在 EC2 上暂停 spot 集群
  • Harvey Feng – JobConf 广播的优化,错误修复,YARN 2.2 构建
  • Ali Ghodsi – YARN 2.2 构建
  • Thomas Graves – Spark YARN 集成,包括通过 YARN 对安全 HDFS 的访问
  • Li Guoqiang – 修复了 Maven 构建
  • Stephen Haberman – 错误修复
  • Haidar Hadi – 文档修复
  • Nathan Howell – 与 YARN 相关的错误修复
  • Holden Karau – Java 版本的 mapPartitionsWithIndex
  • Du Li – make-distribution.sh 中的错误修复
  • Raymond Liu – YARN 2.2 构建方面的工作
  • Xi Liu – 错误修复和代码清理
  • David McCauley – 独立模式 JSON 输出中的错误修复
  • Michael (wannabeast) – 内存存储中的错误修复
  • Fabrizio Milo – 文档中的拼写错误,DAGScheduler 中的清理,scaladoc 中的拼写错误
  • Mridul Muralidharan – 对元数据清理器和推测执行的修复
  • Sundeep Narravula – 构建修复,调度程序和测试中的错误修复,代码清理
  • Kay Ousterhout – 优化的结果获取,UI 中的新信息,调度程序清理和错误修复
  • Nick Pentreath – ALS 算法的隐式反馈变体
  • Imran Rashid – 改进了执行器的启动
  • Ahir Reddy – spark 支持 SIMR
  • Josh Rosen – 内存使用优化,清理了 BlockManager 代码,Java 和 Python 清理/修复
  • Henry Saputra – 构建修复
  • Jerry Shao – 重构了公平调度程序,支持以特定用户身份运行 Spark,错误修复
  • Mingfei Shi – JobLogger 的文档
  • Andre Schumacher – PySpark 中的 sortByKey 和相关的更改
  • Karthik Tunga – 启动脚本中的错误修复
  • Patrick Wendell – repartition 运算符,shuffle 写入指标,各种修复和版本管理
  • Neal Wiggins – 导入清理,文档修复
  • Andrew Xia – UI 中的错误修复
  • Reynold Xin – 任务终止,支持在 Spark shell 中设置作业属性,日志记录改进,Kryo 改进,多项错误修复
  • Matei Zaharia – 优化了 shuffle 数据的哈希映射,PySpark 文档,Kryo 序列化器的优化
  • Wu Zeming – executors UI 中的错误修复

感谢所有贡献者!


Spark 新闻存档

最新消息

存档