• Spark1.0.0新特性


            Spark1.0.0 release于2014-05-30日正式公布,标志Spark正式进入1.X的时代。Spark1.0.0带来了各种新的特性,并提供了更好的API支持;Spark1.0.0添加了Spark SQL这一个新的重要组件,用于载入和操作Spark的结构化数据;Spark1.0.0增强了现有的标准库(ML,streaming,GraphX),同一时候还增强了Java和Python语言的支持;最后,Spark1.0.0在运维上做了非常大的改进,包含支持Hadoop/YARN安全机制、使用统一应用提交工具spark-submit、UI监控的增强等等。以下让我们看看Spark1.0.0的一些新特性:

    1:内核方面
    A:新增的组件Spark SQL
    • Spark1.0.0引入了Spark SQL作为一个新的alpha项目。Spark SQL提供了装载和操作结构化数据,这些结构化数据能够来自外部结构化数据源,如hive、Parquet File,也能够来自通过架构化的RDD。
    • Spark SQL的API能够和RDD数据模型进行互操作,使用户能够交错使用Spark代码与SQL语句。
    • Spark SQL使用Catalyst优化器来选择一个高效的运行计划,并能自己主动将断言保存到类似Parquet之类的存储格式中。在未来的版本号中,Spark SQL也将提供一个通用的API,以支持其它存储系统。
    B:Spark Steaming
    • Spark1.0.0 Streaming针对状态流转换方面进行了性能优化,改进了对Flume支持,以及添加了长时间执行任务的状态进行自己主动清理。
    C:MLlib
    • Spark1.0.0 MLlib添加了Scala,Java和Python的稀疏特征向量支持,其利用了线性方法,K-means和朴素贝叶斯在存储和计算上稀疏性优势。
    • 此外,添加了一些新的算法,如可扩展的决策树进行分类和回归,矩阵算法的分布式实现(包含SVD和PCA),模型评估函数以及和L-BFGS算法。
    D:GraphX
    • Spark1.0.0 GraphX??带来了图形负载,边缘逆转,和邻里计算方面性能的显著提升,由于这些操作如今须要更少的通信要求,产生RDD图更简单。

    2:编程方面
    A:更加稳定的API
    • 对于非alpha版本号的项目API会更稳定,并且会在1.X产品线上兼容下去。
    • 在源码上加以@DeveloperApi标注的API是指不稳定的内部API;以@Experimental标注的API是指面向用户的API,它以后可能稳定。
    B:JAVA8的支持
    • Spark1.0.0添加了对Java8 lambda语法的支持, Java 8支持使用简洁的语法编写匿名函数,类似于在Scala和Python的闭包语法。这些变化在使用现有Java API时作一些微小的改变,详细能够參考文档。如:
    class Split extends FlatMapFunction<String, String> {
      public Iterable<String> call(String s) {
        return Arrays.asList(s.split(" "));
      }
    );
    JavaRDD<String> words = lines.flatMap(new Split());
    使用Java 8的话:
    JavaRDD<String> words = lines.flatMap(s -> Arrays.asList(s.split(" ")));
    C:增强的Python
    • Spark1.0.0对Python API进行了扩展,以支持一些新的功能,也对Python API稳定性方面作了一些改进,特别是对于大型数据集。 
    D:使用spark-submit之后不再须要在代码中指定master
    conf = new SparkConf().setAppName(“My App”)
    sc = new SparkContext(conf)

    3:运维方面
    A:应用提交工具spark-submit
    • Spark1.0.0简化了应用程序的提交方式,通过一个统一的提交工具spark-submit,用户能够将应用程序提交给Spark集群,如Standalone、YARN、Mesos,也能够指定是以client方式执行还是cluster方式执行。详细使用參见Spark1.0.0 应用程序部署工具spark-submit
    /bin/spark-submit
      --class <main-class>
      --master <master-url>
      --deploy-mode <deploy-mode>
      ... # other options
      <application-jar>
      [application-arguments]
    B:JobServer
    Spark1.0.0提供了JobServer对任务进行调度。以后写专题博客进行讨论。

    C:支持YARN安全机制
    • 现有的Hadoop版本号已经有了自己的安全机制,在YARN中执行应用的时候,Spark1.0.0支持YARN的安全机制。
    • 在YARN环境中支持Kerberos authentication:

    spark.authenticate = true

    • 在UI上支持ACL:
    spark.ui.acls.enable = true
    spark.ui.view.acls = user1, user2
    D:UI监控的增强
    • 能够在UI监控中取消job
    • 显示shuffle时的GC信息
    E:History Server
    • 通过配置能够查看已完毕job的历史记录
    spark.eventLog.enabled=true
    spark.eventLog.dir=hdfs://XX
    • 在Standalone模式下,History Server内嵌在master上;在YARN/Mesos模式下,能够守护模式执行History Server。
    F:PySpark如今支持在YARN上执行。

    4:文档方面
    A:编程指南描叙的更具体,涵盖全部支持的语言,很多其它地讨论开发生命周期的各种操作。
    B:MLlib指南中每种算法添加了很多其它细节和样例。
    C:配置指南中对YARN和Mesos的配置说明进行了改进。

    5:杂项
    A:使用DISK_ONLY进行数据集持久化时直接写入磁盘, 对于大数据集会显著提高内存的利用率。
    B:新SparkContext.wholeTextFiles方法能够让小文本文件作为单个记录进行操作。
    。。。



  • 相关阅读:
    正则表达式-入门初探
    pytorch 对变长序列的处理
    数位DP小结
    impala 使用记录
    2017微软第二场笔试题解
    一次分清:jvm内存结构|jmm|java对象模型
    JMM-java内存模型
    java基础总结
    有关秒杀的一点思考
    Elasticsearch 启动报了TypeError: can’t dup Fixnum 错
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3765511.html
Copyright © 2020-2023  润新知