美文网首页
spark简介

spark简介

作者: 竞媒体 | 来源:发表于2020-05-20 16:34 被阅读0次

        Apache  Spark是一个开源的、强大的分布式查询和处理引擎。提供MapReduce的灵活性和可扩展性,但速度明显提高:当数据存储在内存中时,它比Apache Hadoop快100倍,访问磁盘时高达10倍。

        Apache  Spark允许用户读取、转换、聚合数据,还可以轻松地训练和部署复杂的统计模型。Java、Scala、Python、R、SQL都可以访问Spark API.

    spark作业和API

    执行过程:任何Spark应用程序都会分离主节点上的单个驱动进程(可以包含多个作业),然后将执行进程(包含多个任务)分配给多个工作节点。

        驱动进程会确定任务进程的数量和组成,这些任务进程是根据为指定作业生成的图形分配给执行节点的。

    Spark作业与一系列对象依赖相关联,这些依赖关系是以有向无环图(DAG)的方式组织的。

    弹性分布式数据集

    弹性分布式数据集(RDD)是不可变Java虚拟机(JVM)对象的分布式集合,Apache Spark就是围绕着RDD而构建的。我们使用Python时,尤为重要的是要注意Python数据是存储在这个JVM对象中的。

    这些对象允许作业非常快速的执行计算。对RDD的计算依据缓存和存储在内存中的模式进行:与其他传统分布式框架相比,该模式使得计算速度快了一个数量级。

    同时RDD会给出一些粗粒度的数据装换(如:map()、reduce()、filter()),保持Hadoop平台的灵活性和可扩展性。以执行各种各样的计算。RDD以并行方式应用和记录数据转换,从而提高了速度和容错能力。

    RDD有两组并行操作:转换(返回指向新RDD的指针)和动作(在运算后向驱动程序返回值)

    RDD的转换操作是惰性的,因为它们不立即计算其结果。只有动作执行了并且需要将结果返回给驱动程序时,才会计算转换。该延迟执行会产生更多精细查询:针对性能进行优化的查询。

    DataFrame

        DataFrame像RDD一样,是分布在集群的节点中的不可变的数据集合。然而,与RDD不同的是,在DataFrame中,数据是以命名列的方式组织的。

       DataFrame旨在使大型数据集的处理更加容易。它们允许开发人员对数据结构进行形式化,允许更高级的抽象。

    提供了一个特定领域的语言API来操作分布式数据。

    Dataset

        Spark Dataset旨在提供一个API,允许用户轻松地表达域对象的转换,同时还提供了具有强大性能和优点的Spark

    SQL执行引擎。

    Catalyst优化器

        Spark SQL是Apache Spark最具技术性的组件之一,因为它支持SQL查询和DataFrame API.

    相关文章

      网友评论

          本文标题:spark简介

          本文链接:https://www.haomeiwen.com/subject/wyxnohtx.html