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 新闻存档