当前位置:   article > 正文

Spark架构与组件_spark架构中的组件

spark架构中的组件

Spark遵循主从架构。它的集群由一个主服务器和多个从服务器组成。
Spark架构依赖于两个抽象:

  • 弹性分布式数据集(RDD)
  • 有向无环图(DAG)

RDD

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。

弹性:1.存储 2.容错 3.计算 4.分片
分布式:数据存储在集群上
数据集:RDD封装了计算逻辑,并不保存数据
数据抽象:RDD是一个抽象类,需要子类实现
不可变:RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD,在新的 RDD 里面封装计算逻辑

实例:WordCount

object Spark03_WordCount {
  def main(args: Array[String]): Unit = {
    // 装饰者模式
    // HadoopRDD.textFile -> MapPartitionsRDD(flatMap) -> MapPartitionsRDD(map) -> ShuffledRDD
    // 只有在最后的collect才会真正的执行业务逻辑,前面的都是功能的扩展
    // RDD是不报存数据的,IO保存数据
    // RDD有分区的概念
    // RDD 代码中是一个抽象类,是Spark中最基本的数据处理模型,代表弹性,不可变,分区元素可并行计算的集合
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("wc")
    val sc = new SparkContext(sparkConf)
    val lines:RDD[String] = sc.textFile("E:\\atguiguDemo03\\leet-code\\spark01\\src\\main\\resources\\1.txt")
    val result = lines.flatMap(_.split(" "))
        .map(word => (word, 1))
        .reduceByKey(_ + _)
        .collect()
      .foreach(println)
    sc.stop()
  }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述

有向无环图(DAG)

将整个程序计算的执行过程用图形表示出来,这样更直观,更便于理解,可以用于表示程序的拓扑结构
在这里插入图片描述

spark架构

Spark 框架的核心是一个计算引擎,整体来说,它采用了标准 master-slave 的结构。如下图所示,它展示了一个 Spark 执行时的基本结构。图形中的 Driver 表示 master,负责管理整个集群中的作业任务调度。图形中的 Executor 则是 slave,负责实际执行任务。
在这里插入图片描述

组件

Driver:Client

Executor:Server

Mastor/Worker

ApplicationMastor

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/906416
推荐阅读
相关标签
  

闽ICP备14008679号