Advertisement

2.Spark核心概念

阅读量:

1.名词解释

ClusterManager 在 Spark 自身集群模式下扮演主节点角色,并对整个集群进行管理和监控;而在 YARN 模式下则充当 ResourceManager 角色。
Worker 负责控制计算节点并启动 Executor;在 YARN 模式下则充当 NodeManager 角色。
Driver 的主要职责是执行以下任务:首先启动并创建 SparkContext;其次接受并组织 spark 作业;最后与 Spark 集群中的 Executor 进行交互协作。Driver 的核心功能即在于创建 SparkContext 这一操作,并将此视为 Spark 应用程序的核心入口。
Executor 是 worker 节点上运行的任务组件,在其上启动线程池以执行任务操作;每个 spark 应用都拥有独立的一组 Executors。
SparkContext 是整个应用的运行上下文环境,并对应用的生命周期进行全程管控。
RDD 是 Spark 系统中定义的基本计算单元,在其基础上构建形成了有向无环图式的 RDD 计算流程架构。

作为抽象概念的核心模型,在弹性分布式系统中被广泛采用作为数据管理方案的基础架构。其核心特征是在内存中尽可能优先进行计算处理;如果内存资源受限,则会将计算负载转移至磁盘空间上进行处理。这种设计模式确保了系统的高效性和可扩展性,并且能够适应大规模的数据处理需求。为了实现这一目标,在实际应用中通常会将整个RDD数据集划分为多个独立的部分;每个部分对应于特定的工作节点或服务器上的本地存储空间,并通过特定机制实现数据的一致性和可访问性。每个这样的独立部分被称为该RDD的一个分区(partition),这种划分方式与分布式文件系统(HDFS)中的文件分割机制具有高度相似性;每个原始文件被分割成多个独立的数据块(block),分别存放在不同的磁盘位置上以便于分散化管理与读写操作。值得注意的是,在这种设计模式下,并非是分区本身直接负责存储实际的数据内容;相反地,则是由这些分区所代表的数据块共同构成了整个RDD的实际内容信息;而从这个意义上说,RDD可以被看作是对这些分散化分布在不同节点上的分区信息的一种高度抽象化的概括方式。这种设计不仅简化了数据管理的复杂性;同时也为系统的高可用性和容错能力提供了重要保障基础;此外还能够有效提高系统的整体运行效率和性能表现水平

  1. DAG调度器的作用是将Spark作业分解为1至多个阶段(stage),每个阶段根据输入RDD的分区数目来决定所需的任务数量,并将相应任务集合传递给任务调度器进行处理。
    阶段划分对于任务执行至关重要。
  2. 任务调度器负责将任务分配给执行节点进行处理。
    各个被DAG调度器划分后的阶段(每个阶段包含的任务形式)会被交付给执行节点以完成处理。
  3. 一个Spark作业通常包含1至多个阶段(stage)。每次提交的是一个阶段的任务集合。
  4. 每个阶段包含1至多个任务(task),这些小规模的任务通过并行运行实现整体作业效率的提升。
  5. 转换操作包括映射(map)、过滤(filter)、分组聚合(groupBy)、连接(join)等,在这种情况下,默认情况下这些操作不会立即执行。当系统遇到这些延迟操作时会记录其存在性直至遇到触发操作才会启动计算流程。
    转换操作是延迟性的。
  6. 触发操作包括计数(count)、收集(collect)、保存结果(save)、遍历计算(foreach)等这些动作不仅会生成结果数据还会将RDD数据持久化存储在存储系统中。触发操作是启动计算的核心驱动力。
  7. Spark环境变量用于管理线程级别的上下文以及运行时重要组件的引用信息。其中包括:
  • 输出跟踪器:负责管理Shuffle元信息
  • 广播管理器:负责管理广播变量及其元信息
  • 块管理器:负责管理和查找块
    这些组件共同构成了Spark运行时的重要基础设施框架。
  1. 性能监控系统用于实时跟踪和评估系统的运行性能指标如资源使用情况、吞吐量等以便及时发现问题优化配置参数。
  2. Spark配置参数由配置对象管理器维护其主要用于配置当前应用程序的相关参数如应用名称类路径etc. SparkContext的对象构建离不开正确的配置参数设置.

2.Spark-Cluster运行抽象过程

全部评论 (0)

还没有任何评论哟~