栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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()
  }

}

有向无环图(DAG)

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

spark架构

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

组件 Driver:Client Executor:Server Mastor/Worker ApplicationMastor
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号