spark 2.0.0特性 1.6.2特性

Spark 1.6.0

新增Dataset API

新增Dataset API,可以使用自定义对象和lambda函数。Dataset API扩展DataFrame API支持静态类型和运行已经存在的Scala或Java语言的用户自定义函数。对比传统的RDD API,Dataset API提供更好的内存管理,特别是在长任务中有更好的性能提升。

性能提升

  • 提升读取parquet文件性能:Parquet是在Spark使用中最常用的数据格式。Parquet读取性能对海里数据应用有着极其重大的影响。在过去,Spark中读取Parquet依赖于Parquet的(parquert-mr)MR来读取并解析Parquet文件。当我们优化Spark程序时,你会发现太多的时间消耗在从Parquet列解析成记录集的过程中。而在Spark 1.6中Databricks采用一种新型的Parquet reader读取器,它可以用优化的字节码路径来解析Parquet的schemas。基准测试发现,新型的Parquet reader读取器读取Parquet文件有 50%的性能提升(从2.9 million/秒提升到4.5million/秒)
  • 动态内存管理:在Spark 1.6之前,Spark静态地把内存划分成两部分:execution memory 和 cache memory。Execution memory主要用来做sort,hash和shuff。Cache memory是用来缓存热点数据。新的内存管理机制能自动调节这两种内存的区域,运行时自动增长,回收时根据执行的应用适时进行
  • streaming state management性能提升:State management是Spark Streaming应用开发里重要的功能,经常用来保存聚合信息或session信息。Databricks重新设计了state management API,并引入mapWithState API(可随updates的数目线性扩展)。这意味着能更有效的跟踪增量变化,而不是每次update都要对数据进行一次全scan

其他

  • 提供机器学习pipelines的持久化接口
  • 支持R语言的广义线性模型的统计
  • MLlib新增的算法:Survival analysis、Normal equation for least squares、Online hypothesis testing、 New feature transformers 和Bisecting K-Means clustering
  • Session Management:不同用户配置和表不同时,使用同一个集群
  • 在任意支持的文件上直接运行SQL查询,不需要注册为临时表
  • 支持对非标准JSON文件的读操作
  • 优化distinct聚集函数的查询计划,尤其是聚集列重复值很少时
  • 自适应执行查询:支持自动初始化join或aggregations的reducers的个数
  • 使用堆外内存执行SQL,避免GC造成的瓶颈
  • 废弃了spark.mllib.clustering.KMeans中的runs参数
  • 在spark.ml.classification.LogisticRegressionModel和 spark.ml.regression.LinearRegressionModel废弃了weights参数,并支持新的coefficients参数。

Spark in CDH

CDH不支持的Spark 特征如下所示:

  • SparkSQL:
    • Thrift JDBC/ODBC 服务
    • Spark CLI
  • Spark Dataset API
  • SparkR
  • GraphX
  • Spark on Scala 2.11
  • Mesos 集群管理

Spark 2.0.0

于2016年7月26日发布release版本

  • 标准的SQL支持:Spark 2.0可以运行所有99个TPC-DS查询(需求SQL:2003中的很多功能支持)
  • 数据框(DataFrame)/Dataset (数据集)API的统一
  • SparkSession取代原本的SQLContext与HiveContext。原本的SQLContext与HiveContext仍然保留,以支持向下兼容。
  • 设计了一个新的Accumulator API,专门支持基本类型。
  • 基于DataFrame的机器学习API将作为主ML API出现
  • 机器学习管道持久化
  • Spark 2.0搭载了第二代Tungsten引擎。根据现代编译器与MPP数据库的理念来构建的,它将这些理念用于数据处理中,其主要思想就是在运行时使用优化后的字节码,将整体查询合成为单个函数,不再使用虚拟函数调用,而是利用CPU来注册中间数据。
  • Spark 2.0使用一个新的API:Structured Streaming模块,主要有以下改进
    • 与批处理作业集成的API
    • 与存储系统的事务交互
    • 与Spark的其它组件的深入集成

参考
参考2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值