Spark0.8已于今天正式发布,是Spark成为Apache顶级孵化项目后第一次重大发布。主要有几方面最大的改动:MLlib机器学习库面世;支持YARN;Python的提升及API的丰富;增加webUI监控。历数这次重大更新的各个新增点,我最看重的是MLlib的发布,扩充了spark上机器学习基础算法库,MLbase也是初次正式面世,参照现有scala的实现,开发者完全可以开始着手丰富自己的spark机器学习库。
Spark0.8是一次庞大的发布,拥有67位开发者和24位成员的贡献。Spark0.8已经可以下载,同样可以现在source code自己编译,或者下载预编译过了的支持hadoop1/CDH3或hadoop2/CDH4的包。下载地址点击打开链接。 大致Spark0.8有如下一些新增点。
UI监控
增加了Web-UI下的监控,默认端口是4040,会job的running,succeeded,failed等信息,还覆盖了一些任务执行时间,shuffled data,以及垃圾回收的统计信息。
机器学习库
之前在看MLbase相关资料的时候,就得知MLlib会在Spark0.8的时候一起发布,而MLlib是一个机器学习算法库,其实就是运行在Spark上的一个scala库,起到充实Spark API的作用。目前支持以下几个算法:SVM,逻辑回归,若干线性回归,KMeans,协同过滤。具体在mllib目录的src下都有scala源码可以看,参照这些实现,我们可以在MLbase完全发布之前,自己模仿做一些机器学习基础算法的扩充工作。
Python API扩充
之前0.7.2版本的python api没有完全支持RDD的一些操作和特性(相比scala api),这次python api针对之前缺失的特性进行了扩充。
支持Hadoop YARN
spark0.8已经支持把spark任务跑到YARN上,对于YARN的支持不再是实验性,而已经成为了spark的一部分。
革新job scheduler
Spark内部的job scheduler得到了重构和扩充,支持更复杂的调度策略。新的调度器将允许多个用户共享一个spark实例,提高各类job执行性能。
更简单的部署和连接(Hadoop)
不需要像之前那样为特定的hadoop版本编译spark,或者特意去替换core包,针对hadoop的打通有了更新更方便的方式。
关于Mesos的支持
默认Mesos版本的支持已提高到0.13.0,之前是Mesos-0.9.0,且部署Spark装配包的时候,已经不需要在每个mesos节点上先预先部好Spark。
其他
- RDDs can now manually be dropped from memory with unpersist.
- The RDD class includes the following new operations: takeOrdered, zipPartitions, top.
- A JobLogger class has been added to produce archivable logs of a Spark workload.
- The RDD.coalesce function now takes into account locality.
- The RDD.pipe function has been extended to support passing environment variables to child processes.
- Hadoop save functions now support an optional compression codec.
- You can now create a binary distribution of Spark which depends only on a Java runtime for easier deployment on a cluster.
- The examples build has been isolated from the core build, substantially reducing the potential for dependency conflicts.
- The Spark Streaming Twitter API has been updated to use OAuth authentication instead of the deprecated username/password authentication in Spark 0.7.0.
Several new example jobs have been added, including PageRank implementations in Java, Scala and Python, examples for accessing HBase and Cassandra, and MLlib examples.
- This release includes various optimizations to PySpark and to the job scheduler.
更多内容详见http://spark.incubator.apache.org/releases/spark-release-0-8-0.html
(全文完)