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)模式,可以容忍主节点故障。这对于流作业和 shark 服务器等长时间运行的应用程序特别有用,因为调度器主节点以前是单点故障。部署 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 操作符:transformWith, leftInnerJoin, rightOuterJoin
  • 新的 Spark 操作符:repartition
  • 现在可以在独立和 Mesos 模式下以不同用户身份运行 Spark 应用程序

显著的 Bug 修复

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

致谢

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

感谢所有贡献者!


Spark 新闻存档

最新新闻

存档