Spark内部工作原理和版本API

Spark的内部原理

Spark的主要模块,内部的运行机制,包括调度机制和执行机制
    调度与任务分配
    I/O模块
    通信控制模块
    容错模块
    Shuffle模块

Spark执行机制的总览:

    Action---Job --> RDD DAG ----> Stage DAG  --Task--->Executor执行

Spark的调度:

    application、job、stage、task几个层次,采用经典调度算法
    Application运行方式分为 Cluster模式和 Client模式,Application的调度
    JOb的调度:配置调度池,调度算法
    Stage的调度是由DAGScheduler完成的

Spark的I/O

    采用数据块为单位进行管理
        本地I/O开销和传输开销
            通过序列化和反序列化---进行流式传输和块存储
            压缩:Snappy 和LZF压缩
        分层:通信层和存储层
            CacheManager  BlockManager

Spark的通信控制模块

    通过akka框架进行集群消息通信
     采取了异步通信和分布式架构,在本地和远程都有监控和恢复机制,采取无中心节点架构
     Spark将其作为分布式中的RPC框架
        分布式通信的几种方式:
            RPC
            RMI
            JMS
            EJB
            Web service

Spark的容错

    通过Lineage 和 checkpoint 机制进行容错性保证
        Lineage进行重算操作:记录粗颗粒度的特定数据Transformation操作的行为
            Narrow Dependencies
            Shuffle Dependencies---wide Dependencies
        checkpoint  进行数据冗余备份
            传统检查点:通过冗余数据和日志记录更新操作
             SPARK通过冗余数据缓存数据

Spark的shuffle机制

在各种重新分区的算子下对数据进行重组合的过程

主要有三个方面:

安装和运维和测试
开发和性能调优
二次开发,打造专属框架

API的更新与改进

Spark 1.6.0

Spark Core              SparkContext对象      RDD的入口
模块中
SparkStreaming          DStream
Spark SQL               SQLContext              Dataframe .Dataset以及SQL的入口
                        HiveContext
Spark.mlib
Spark Graphx

Spark 2.0

Spark Core              SparkContext            RDD的入口  
模块
SparkStreaming          Structured Streaming
Spark SQL               SparkSession                Dataset 以及SQL和Hive

Spark.ml
Spark Graphx

版本

1.0     RDD     -           -           2014-03-30
1.3     RDD     DataFrame   -           2015-03-13
1.6     RDD     DataFrame   DataSet     2016-01-04
2.0     RDD            DataSet          2016-07-26

blogroll

social