一.Spark 简介

  1. Spark 和Scala
    1.1 Spark 是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序;
    1.2 Spark 的特点
  2. spark 那些功能 spark的功能介绍_Hadoop

  3. 1.3 Scala是一门现代的多范式编程语言,可扩展式语言;
    1.4 Scala 特性
  4. spark 那些功能 spark的功能介绍_依赖关系_02

  5. 1.5 Scala 是Spark的主要编程语言,但Spark 还支持Java 、Python ,R语言编程。提供了REPL(交互式解析器),提高程序开发效率。
  6. Spark 和Hadoop 的比较
    2.1 Hadoop 是基于磁盘的大数据计算框架;Spark 性能比Hadoop 优越;
    2.2 Spark 的优点
    Spark的计算模式也属于MapReduce ,但不局限与Map 和Reduce 操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce 更灵活。
    Spark提供了内存计算,可将中间结果发放到内存中,对于迭代计算效率更高;
    Spark 基于DAG 的任务调度执行机制,要优于 Hadoop MapReduce 的迭代执行机制;

二.Spark 生态系统

  1. 大数据处理主要的三个类型:
    复杂的批量数据处理;基于历史数据的交互式查询;基于实时数据流的数据处理;
  2. 同时部署三种不同的软件,以满足三种不同的业务需求。
    MapReduce ; Cloudera Impala; Storm;
  3. 框架
  4. spark 那些功能 spark的功能介绍_SQL_03

  5. 3.1 Spark 可以部署在资源管理器YARN 之上,提供一站式的大数据解决方案;
    3.2 Spark 所提供的生态系统足以满足上述三种场景即同时支持批处理、交互式查询和流数据处理.
    3.3 Spark 生态系统已经成为伯克利数据分析软件栈BDAS的重要组成部分;
    3.4 BDAS架构
  6. spark 那些功能 spark的功能介绍_Hadoop_04

  7. Spark Core 实现了 Spark 基于内存的计算
    Spark Streaming 来实现流计算
    Saprk SQL和BlinkDB完成交互式的SQL 查询;
    GraphX:完成图计算;
    ML Base和MLlib:完成机器学习和数据挖掘;
  8. spark 那些功能 spark的功能介绍_依赖关系_05

  9. 3.5 Spark 组件应用场景
  10. spark 那些功能 spark的功能介绍_spark 那些功能_06

三. Spar 运行架构

  1. 基本概念
  2. spark 那些功能 spark的功能介绍_SQL_07

  3. 架构设计
  4. spark 那些功能 spark的功能介绍_Hadoop_08

  5. 2.1 与Hadoop MapReduce 计算框架相比,Spark 采用Excutor 的两个有点;
    –>利用多线程来执行具体的任务,减少任务的启动开销;
    –>Excutor 中有一个BlockManager 存储模块,会将内存和磁盘共同作为 存储设备,有效减少IO 开销.
  6. spark 那些功能 spark的功能介绍_SQL_09


  7. spark 那些功能 spark的功能介绍_spark 那些功能_10

  8. Spark 运行基本流程
  9. spark 那些功能 spark的功能介绍_spark 那些功能_11

  10. 3.1 为应用程序构建其基本的运行环境,即由Driver 创建一个SparkContex进行资源的申请,任务的分配和监控;
    3.2 资源管理器为Excutor 分配资源,并启动Excutor 进程;
    3.3 SparkContext根据RDD 的依赖关系构建DAG图,DAG 图提交给DAG Schufule解析成Starge,然后把一个个TaseSet提交给底层调度器Task Schudule 处理.Excutor 向SparkContext 申请Task ,Task Schudule 将Task 发放给Excutor 运行并提供应用程序代码;
    3.4 Task 在Excutor 上运行把执行结果反馈给Task Schudule ,然后反馈给DAG Schudule ,运算完毕后写入数据并释放所有资源.
    3.5 运行架构特点
  11. spark 那些功能 spark的功能介绍_spark 那些功能_12

  12. RDD 组件
    许多迭代式算法和交互式数据挖掘,不同计算阶段之间会重用中间结果.MapReduce 都是把结果写入磁盘,带来大量数据复制,磁盘IO和序列化开销大;
    4.1 RDD概念
    RDD就是为满足这种需求而设计的,提供了一个抽象的数据结构;
    不必担心底层数据的分布式特性,只需将具体的应用逻辑表达为一系列转换处理.
    不同RDD 之间的转换操作形成依赖关系,可以实现管道化,避免中间数据存储;
    一个RDD(弹性分布式数据集)就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可以分为多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算.
    4.2 RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区集合,不能直接修改,只能基于稳定的物理存储中的数据集创建RDD,或者通过其他RDD 上执行确定的转换操作(如map,jion,group by)而创建得到新的RDD.
  13. spark 那些功能 spark的功能介绍_spark 那些功能_13

  14. 4.3 RDD的执行过程
  15. spark 那些功能 spark的功能介绍_依赖关系_14

  16. 上述图示中的处理过程,即 DAG 拓扑排序结果,反应了不同RDD的相互依赖关系
    优点:惰性调用,管道化.避免同步等待,不需要保存中间结果,每次操作变得简单;
    4.4 RDD特性
  17. spark 那些功能 spark的功能介绍_spark 那些功能_15

    spark 那些功能 spark的功能介绍_依赖关系_16


  18. spark 那些功能 spark的功能介绍_SQL_17

  19. 4.5 RDD 的依赖关系和运行过程
    RDD 之间的依赖关系(宽依赖,窄依赖)是划分Stage的依据.
    窄依赖:表现为一个父RDD的分区对应一个自RDD 的分区或多个父RDD 的分区对应与一个子RDD的分区;
  20. spark 那些功能 spark的功能介绍_SQL_18

  21. 宽依赖:表现为存在一个父RDD的分区对应一个子RDD的多个分区;
  22. spark 那些功能 spark的功能介绍_依赖关系_19

  23. 4.6 Stage 的划分
    Spark通过分析各个RDD 的依赖关系生成DAG 再通过分析各个RDD中分区之间的依赖关系来决定如何划分Stage;
  24. spark 那些功能 spark的功能介绍_SQL_20

  25. 如下划分情况:
  26. spark 那些功能 spark的功能介绍_spark 那些功能_21

  27. 4.7 Stage 类型
    –>ShuffleMapStage
  28. spark 那些功能 spark的功能介绍_Hadoop_22

  29. –>ResultStage
  30. spark 那些功能 spark的功能介绍_Hadoop_23

  31. 4.8 RDD 运行过程
  32. spark 那些功能 spark的功能介绍_依赖关系_24

  33. Spark SQL组件
    5.1 Spark SQL 架构



    5.2 Spark SQL 与Hive关系

    5.3 Spark 的部署和应用方式





    5.4 Spark 编程