Spark 1.0.0于5月30日正式发布,可以到http://spark.apache.org/downloads.html页面下载。Spark 1.0.0是一个主要版本,它标志着Spark已经进入了1.X的时代。这个版本的Spark带来了很多新特性和强API的支持。 Spark 1.0加入了一个主要的组件: Spark SQL,这个组件支持在Spark上存储和操作结构化的数据。已有的标准库比如ML、Streaming和GraphX也得到了很大程度上的增强,对Spark和Python的接口也变得更稳定。最后,Spark 1.0同时带来了操作方面的提升,包括全面支持Hadoop/YARN安全模型和对所有支持cluster managers提供一个统一的提交流程。下面主要介绍Spark 1.0.0带来的新特性:
API稳定性
Spark 1.0.0是1.X主线的第一个发行版本。Spark保证主API对所有的1.x版本都提供兼容。从历史上看,Spark对API的改变非常保守。
融合YARN的安全机制
Hadoop有着自己的安全机制,包括认证和授权。Spark现在可以和Hadoop/YARN的安全模型并存,也就是说Spark可以对任务提交(job submission)进行认证,能够使用HDFS的认证机制进行数据的安全传输,各组件之间也增加了互相认证。
改善了任务提交的流程
这个版本的Spark简化了bundling和提交Spark应用的流。Spark启用新的任务提交工具spark-submit tool,它可以在任何Spark集群上提交任务,有关bundling Spark应用程序的文档已经增加了很多。Spark的UI界面中也增加了历史任务的记录,方便了用户查看已经结束了任务运行情况。
Spark SQL的加入
Spark SQL作为一个新的alpha版本组件加入到1.0.0版本中,它能够利用Spark进行结构化数据的存储和操作,结构化数据既可以是外部结构化数据源(当前支持Hive和Parquet),也可以对已有的RDD增加相应的schema来得到。
Spark SQL的API可以操作RDD数据模型,用户可以通过SQL语句来与Spark代码交互。当前Spark SQL使用Catalyst优化器来对SQL语句进行优化从而得到更有效的执行方案,并且可以将结果存储到Parquet格式中,在将来Spark SQL还会兼容其他的存储系统。
MLib的改进
这个版本的MLib增加了对Scala、Java、Python中特征向量的支持,其主要利用了线性方法、k-means和朴素贝叶斯在存储和计算上的稀疏性。1.0.0的MLib还增加了几个新的算法,包括为分类和回归增加了可扩展的决策树、矩阵算法的分布式实现(包括SVD和PCA)、模型评估函数以及L-BFGS算法。
GraphX和Streaming的改进
GraphX在图加载、边反转和邻接计算方面对通信的要求更低,产生的RDD图更简单,从而在性能方面得到了很大提升。
扩展对Java和Python的支持
Spark 1.0.0增加了对Java 8的lambda语法支持。Java 8支持用简洁的语法来编写匿名函数,这个和Scala和Python类似。 这需要对当前的Java API做一点改变,文档里面有说明。Spark的Python API增加了一些新的函数。
Smaller Changes
- PySpark now works with more Python versions than before – Python 2.6+ instead of 2.7+, and NumPy 1.4+ instead of 1.7+.
- Spark has upgraded to Avro 1.7.6, adding support for Avro specific types.
- Internal instrumentation has been added to allow applications to monitor and instrument Spark jobs.
- Support for off-heap storage in Tachyon has been added via a special build target.
- Datasets persisted with DISK_ONLY now write directly to disk, significantly improving memory usage for large datasets.
- Intermediate state created during a Spark job is now garbage collected when the corresponding RDDs become unreferenced, improving performance.
- Spark now includes a Javadoc version of all its API docs and a unified Scaladoc for all modules.
- A new SparkContext.wholeTextFiles method lets you operate on small text files as individual records.
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Spark 1.0.0于5月30日正式发布】(https://www.iteblog.com/archives/1037.html)