spark 2.0的预览版在前几个月已经吵得沸沸扬扬,趁着今天一起编译了下这个版本,还是非常方便的。
这回采用MVN来进行编译,具体见官网的编译帮助。
Building with build/mvn
Spark now comes packaged with a self-contained Maven installation to ease building and deployment of Spark from source located under thebuild/
directory. This script will automatically download and setup all necessary build requirements (Maven, Scala, and Zinc) locally within thebuild/
directory itself. It honors any mvn
binary if present already, however, will pull down its own copy of Scala and Zinc regardless to ensure proper version requirements are met. build/mvn
execution acts as a pass through to the mvn
call allowing easy transition from previous build methods. As an example, one can build a version of Spark as follows:
build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
输入上述命令,即可编译完成。
然后配置各种环境,进行测试,如对其dataset进行测试。
这个看起来还是相当不错的。以后dataset的用途将相当明显。
当然从目前一些介绍来看,这个升级版本在SQL查询方面将更加强大。
最终的Apache Spark 2.0发布还有几个星期,其新特性主要如下:
更简单:SQL和简化的API
Spark 2.0依然拥有标准的SQL支持和统一的DataFrame/Dataset API。但我们扩展了Spark的SQL 性能,引进了一个新的ANSI SQL解析器并支持子查询。Spark 2.0可以运行所有的99 TPC-DS的查询,这需要很多的SQL:2003功能。
在编程API方面,我们已经简化了API:
-
统一Scala/Java下的DataFrames 和 Datasets
-
SparkSession
-
更简单、更高性能的Accumulator API
-
基于DataFrame的Machine Learning API 将成为主要的ML API
-
Machine Learning 管道持久性
-
R中的分布式算法
更快:Spark 作为一个编译器
Spark 2.0将拥有更快的速度,下图是Spark 2.0和Spark 1.6的速度对比图:
更智能:结构化数据流
通过在DataFrames之上构建持久化的应用程序来不断简化数据流,允许我们统一数据流,支持交互和批量查询。