60、Spark1.5.1

Spark 1.4.x的新特性

  1. Spark Core
    1.1. 提供REST API供外界开发者获取Spark内部的各种信息(jobs / stages / tasks / storage info),基于这些API,可以搭建自己的Spark监控系统。
    1.2. shuffle阶段,默认将map端写入磁盘的数据进行序列化,优化io性能。
    1.3. 钨丝计划(Project Tungsten),提供了UnsafeShuffleManager,使用缓存友好的排序算法,降低了shuffle的内存使用,提高了排序性能。

  2. Spark Streaming
    2.1. 提供了新的Spark Streaming的UI,能够更好,更清晰的监控Spark Streaming应用程序的运行状况。
    2.2. 支持Kafka 0.8.2版本

  3. Spark SQL and DataFrame
    3.1. 支持ORCFile
    3.2. 提供了一些window function(窗口函数)
    3.3. 优化了join的性能

Spark 1.5.x的新特性

  1. DataFrame底层执行的性能优化(钨丝计划第一阶段)
    1.1 Spark自己来管理内存,而不再依靠JVM管理内容。这样就可以避免JVM GC的性能开销,并且能够控制OOM的问题。
    1.2 Java对象直接使用内部的二进制格式存储和计算,省去了序列化和反序列化的性能开销,而且更加节省内存开销。
    1.3 完善了Shuffle阶段的UnsafeShuffleManager,增加了不少新功能,优化shuffle性能。
    1.4 默认使用code-gen,使用cache-aware算法,加强了join、aggregation、shuffle、sorting的性能,增强了window function的性能,性能比1.4.x版本提高数倍

  2. DataFrame
    2.1 实现了新的聚合函数接口,AggregateFunction2,并且提供了7个新的内置聚合函数。
    2.2 实现了100多个新的expression function,例如unix_timestamp等,增强了对NaN的处理
    2.3 支持连接不同版本的hive metastore
    2.4 支持Parquet 1.7

  3. Spark Streaming:更完善的python支持、非实验的Kafka Direct API等等。

Spark 1.5.1源码编译

掌握了源码编译,就具备了对Spark进行二次开发的基本条件了!如果你要修改Spark源码,进行二次开发,那么首先就得从官网下载指定版本的源码,然后倒入你的ide开发环境,进行源码的修改;接着修改完了,你希望能够将修改后的源码部署到集群上面去,那么是不是得对源码进行编译,编译成可以在linux集群上进行部署的格式包吧!

1、http://d3kbcqa49mib13.cloudfront.net/spark-1.5.1.tgz
2、准备好JDK、Scala、Maven环境
3、针对指定hadoop版本进行编译:./make-distribution.sh --tgz -Phadoop-2.6 -Pyarn -DskipTests -Dhadoop.version=2.6.0 -Phive
4、经常长时间的编译之后,得到spark-1.4.0-bin-2.6.0.tgz

你可能感兴趣的:(60、Spark1.5.1)