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 运算符:
transformWith
、leftInnerJoin
、rightOuterJoin
- 新的 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 新闻存档