spark(三):相关概念

说明

本博客每周五更新一次。
Spark是大数据平台重要的计算引擎,率先实现流批一体,创建众多相关概念,知道并理解这些概念,有利于深入学习spark架构。

分享

spark相关概念

RDD(Resilient Distributed Dataset)

  • 弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。

DAG(Directed Acycle Graph)

  • 有向无环图。Spark 使用 DAG 来反映各 RDD 之间的依赖或血缘关系

Application

  • 运行在集群上的用户程序

Driver Program

  • 一个java进程,负责运行 Spark Applicaion 的 main() 函数,主要职责有。
    • 执行用户提交代码,创建 SparkContext或SparkSession。
    • 将代码转换为Spark任务(Jobs)
      • 创建血缘(Lineage),逻辑计划(Logical Plan)和物理计划(Physical Plan)
    • SparkContext 负责和 Cluster Manager 通信,进行资源申请、任务分配和监控等。

Spark Context/Session

  • 由Spark driver创建,每个 Spark 应用对应一个。程序和集群交互的入口,可连接 Cluster Manager

Cluster Manager

  • 集群资源管理器,负责整个集群包括 Driver 和 Executors,申请和管理在 Worker Node 上运行应用所需的资源,目前包括 Spark 原生的 Cluster Manager、Mesos Cluster Manager 和 Hadoop YARN Cluster Manager、Kubernetes。

Deploy Mode

  • 部署模式用于区别driver program的运行方式:集群模式(cluter mode),driver在集群内部启动;客户端模式(client mode),driver进程从集群外部启动。

Worker Node

  • 具体执行application程序的工作节点

Executor

  • Application 运行在 Worker Node 上的一个进程。一个Executor有多个slots(线程),可以并发执行多个tasks,并负责将数据存在内存或者磁盘上
    • 每个 Application 都有各自独立的一批 Executor。每个 Executor 则包含了一定数量的资源来运行分配给它的任务。
    • 每个 Worker Node 上的 Executor 服务于不同的 Application,它们之间是不可以共享数据的。

Stage

  • Job 的执行阶段。DAGScheduler 按照ShuffleDependency 作为 Stage 的划分节点对 RDD的 DAG 进行 Stage 划分(上游的 Stage 将为 ShuffleMapStage)。因此一个 Job 可能被划分为一到多个 Stage。Stage 分为 ShuffleMapStage 和 ResultStage 两种。

Job

  • 用户提交的作业。当 RDD 及其 DAG 被提交给 DAGScheduler 调度后,DAGScheduler 会将所有 RDD 中的转换及动作视为一个 Job。一个 Job 有一个到多个 Task 组成。

solt

  • 节点资源的粗粒度抽象,标识一个task运行资源。

Task

  • 具体执行的任务,运行于Executor中的任务单元
  • 一个 slot 就是一个线程,对应了一个 task

partition

  • 数据分区,即一个 RDD 的数据可以划分为多少个分区。Spark 根据 Partition 的数量来确定 Task 的数量。

NarrowDependency

  • 窄依赖,即子 RDD 依赖于父 RDD 中固定的 Partition。NarrowDependency分为 OneToOneDependency 和 RangeDependency 两种。

ShuffleDependency

  • Shuffle 依赖,也称为宽依赖,即子 RDD 对父 RDD 中的所有 Patition 都可能产生依赖。子 RDD 对父 RDD 各个 Partition 的依赖将取决于分区计算器(Partitioner)的算法。

总结

  • 上述概念众多,尽可能刻进脑子里,熟悉它们可以装大佬,处理问题时,也能得心应手。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值