Spark大数据分析与实战笔记(第二章 Spark基础-03)

这篇具有很好参考价值的文章主要介绍了Spark大数据分析与实战笔记(第二章 Spark基础-03)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

每日一句正能量

又回到了原点,就从现在开始我的新生活吧。

章节概要

章节概要:Spark运行架构与原理

I. 引言
A. 概述Spark
B. Spark的特点和优势

II. Spark运行架构概述
A. Spark集群模式
B. Spark运行模式
C. Spark执行引擎:Spark Core
D. Spark计算模块:RDD
E. Spark数据抽象模块:DataFrame和Dataset
F. Spark资源管理器:Cluster Manager
G. Spark任务调度器:DAG调度器

III. Spark运行原理
A. Spark的分布式计算模型
B. Spark的任务划分与调度
C. Spark的数据分区与数据本地性
D. Spark的内存管理与数据持久化
E. Spark的容错机制与数据可靠性保障

IV. Spark运行架构实例分析
A. Spark Standalone模式运行架构
1. 架构概述
2. 运行流程分析
3. 执行资源管理控制
B. Spark on YARN模式运行架构
1. 架构概述
2. 运行流程分析
3. YARN资源管理控制
C. Spark on Mesos模式运行架构
1. 架构概述
2. 运行流程分析
3. Mesos资源管理控制

V. 总结和展望
A. 对Spark运行架构和原理的总结
B. 对Spark未来发展的展望

在本章节中,我们将首先介绍Spark的运行架构和原理的基本概念和要点。接着,我们将深入探讨Spark的运行原理、数据抽象模块、资源管理器和任务调度器等关键组件的工作原理和实现方式。然后,我们将通过实际的运行架构实例分析,来具体了解Spark在不同的集群模式下的运行架构和工作流程。最后,我们将对Spark的运行架构和原理进行总结,并展望其未来发展的方向和趋势。本章节的内容将帮助读者全面了解Spark的运行架构和原理,从而更好地应用和优化Spark程序。

2.3 Spark运行架构与原理

2.3.1 基本概念

在学习Spark运行架构与工作原理之前,首先需要了解几个重要的概念和术语。

  • Application(应用)
    Spark上运行的应用。Application中包含一个驱动器进程和集群上的多个执行器进程。
  • Driver Program(驱动器)
    运行main()方法并创建SparkContext的进程。
  • Cluster Manager(集群管理器)
    用于在集群上申请资源的外部服务(如:独立部署的集群管理器、Mesos或者Yarn)。
  • Worker Node(工作节点)
    集群上运行应用程序代码的任意一个节点。
  • Executor(执行器)
    在集群工作节点上为某个应用启动的工作进程,该进程负责运行计算任务,并为应用程序存储数据。
  • Task(任务)
    运行main()方法并创建SparkContext的进程。
  • Job(作业)
    一个并行计算作业,由一组任务组成,并由Spark的行动算子(如:save、collect)触发启动。
  • Stage(阶段)
    每个Job可划分为更小的Task集合,每组任务被称为Stage

Spark大数据分析与实战笔记(第二章 Spark基础-03),# Spark大数据分析与实战,spark,架构,原理

2.3.2 Spark集群运行架构

Spark运行架构主要由SparkContext、Cluster Manager和Worker组成,其中Cluster Manager负责整个集群的统一资源管理,Worker节点中的Executor是应用执行的主要进程,内部含有多个Task线程以及内存空间,下面通过下图深入了解Spark运行基本流程。
Spark大数据分析与实战笔记(第二章 Spark基础-03),# Spark大数据分析与实战,spark,架构,原理
Spark应用在集群.上运行时,包括了多个独立的进程,这些进程之间通过驱动程序(Driver Program)中的SparkContext对象进行协调,SparkContext对象能够 与多种集群资源管理器(Cluster Manager)通信,一旦与集群资源管理器连接,Spark会为该应用在各个集群节点上申请执行器(Executor) ,用于执行计算任务和存储数据。

每个Spark应用程序都有其对应的多个执行器进程。执行器进程在整个应用程序生命周期内,都保持运行状态,并以多线程方式执行任务。

驱动器程序在整个生命周期内必须监听并接受其对应的各个执行器的连接请求,因此驱动器程序必须能够被所有Worker节点访问到。

因为集群上的任务是由驱动器来调度的,所以驱动器应该放在离集群Worker节点比较近的机器上。

2.3.3 Spark运行基本流程

通过上一小节了解到,Spark运行架构主要由SparkContext、 Cluster Manager和Worker组成,其中Cluster Manager负责整个集群的统一资源管理,Worker节 点中的Executor是应用执行的主要进程,内部含有多个Task线程以及内存空间。Spark应用在集群上作为独立的进程组来运行,具体运行流程如下所示。
Spark大数据分析与实战笔记(第二章 Spark基础-03),# Spark大数据分析与实战,spark,架构,原理

  1. 当一个Spark应用被提交时, 根据提交参数在相应位置创建Driver进程,Driver进程根据配置 参数信息初始化SparkContext对象,即Spark运行环境, 由SparkContext负责和Cluster Manager的通信以及资源的申请、任务的分配和监控等。SparkContext启动后, 创建DAG Scheduler (将DAG图分解成Stage)和Task Scheduler (提交和监控Task)两个调度模块。

  2. Driver进程根据配置参数向Cluster Manager申请资源(主要是用来执行的Executor),Cluster Manager接收到应用(Application) 的注册请求后,会使用自己的资源调度算法,在Spark集群的Worker节点 上,通知Worker为应用启动多个Executor。

  3. Executor创建后, 会向Cluster Manager进行资源及状态的反馈,便于Cluster Manager对Executor进行状态监控,如果监控到Executor失败,则会立刻重新创建。

  4. Executor会向SparkContext反向注册申请Task。

  5. Task Scheduler将Task发送给Worker进程中的Executor运行并提供应用程序代码。

  6. 当程序执行完毕后写入数据,Driver向Cluster Manager注销申请的资源。

总结

Spark是一种分布式计算框架,提供了高效的数据处理能力和强大的计算功能。它的运行架构和原理可以总结如下:

  1. Master-Worker架构:Spark的运行架构是基于Master-Worker模式的。在一个Spark集群中,有一个称为Spark Master的节点负责协调和管理整个集群,同时有多个称为Spark Worker的节点负责执行具体的计算任务。

  2. 弹性分布式数据集(RDD):Spark的核心概念是弹性分布式数据集(RDD)。RDD是一种可并行计算的数据结构,它可以在集群中的多个节点之间分布式地存储和处理数据。RDD具有容错性和可恢复性的特点,可以在节点失败时自动进行数据恢复。

  3. DAG执行引擎:Spark使用DAG(Directed Acyclic Graph)执行引擎来执行并行计算任务。通过将计算任务表示为一系列有向无环图,Spark可以将计算任务分解为多个阶段(Stage),并在多个节点上并行执行这些阶段。

  4. 内存计算:与其他分布式计算框架相比,Spark具有更高的性能,部分原因是因为它使用了内存计算。Spark可以将数据存储在内存中,从而避免了频繁的磁盘读写操作,大大提高了计算速度。

  5. Transformations和Actions:Spark提供了丰富的Transformations和Actions操作,用于对RDD进行转换和操作。Transformations操作会生成一个新的RDD,而Actions操作会触发计算并返回结果。这种惰性计算的方式可以提高Spark的效率,只有在需要时才会真正执行计算。

总的来说,Spark的运行架构和原理结合了Master-Worker模式、RDD、DAG执行引擎和内存计算等关键技术,实现了高效的分布式计算。通过灵活的数据处理能力和强大的计算功能,Spark成为了大数据处理的重要工具之一。

转载自:https://blog.csdn.net/u014727709/article/details/132168348
欢迎 👍点赞✍评论⭐收藏,欢迎指正文章来源地址https://www.toymoban.com/news/detail-779718.html

到了这里,关于Spark大数据分析与实战笔记(第二章 Spark基础-03)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NanoEdge AI Studio 教程 第二章--异常数据分析

    OK,好久不见,各位,最近挺忙,欢迎回来。 让我们开始第二章节,异常判断。 目录 一 Nano Edge AI Studio 简单概述 二 异常判断 1.工程选择 2.进行工程设置 2.1 MCU选择 2.2 数据设定 3.输入数据 4.模型训练 5.验证 6.生成模型 7.布置模型 NanoEdge AI Studio主要可以实现的功能主要分为四

    2024年04月17日
    浏览(53)
  • 从零开始学数据分析之——《线性代数》第二章 矩阵

    元素全为实数的矩阵称为实矩阵  元素全为负数的矩阵称为复矩阵 只有一行(列)的矩阵称为行(列)矩阵 元素全为零的矩阵称为零矩阵 行数和列数都等于n的矩阵称为n阶矩阵或n阶方阵 主对角线元素全为1,其余元素全为0的矩阵称为单位矩阵,记作E或I 两个矩阵行数和列数

    2023年04月23日
    浏览(49)
  • Spark大数据分析与实战笔记(第三章 Spark RDD 弹性分布式数据集-02)

    人生很长,不必慌张。你未长大,我要担当。 传统的MapReduce虽然具有自动容错、平衡负载和可拓展性的优点,但是其最大缺点是采用非循环式的数据流模型,使得在迭代计算式要进行大量的磁盘IO操作。Spark中的RDD可以很好的解决这一缺点。 RDD是Spark提供的最重要的抽象概念

    2024年02月22日
    浏览(95)
  • Spark大数据分析与实战笔记(第一章 Scala语言基础-1)

    Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术,本身就是计算数据,而Scala既有面向对象组织项目工程的能力,又具备计算数据的功能,同时Spark和Scala的紧密集成,本书将采用Scala语言开发Spark程序,所以学好Scala将有助

    2024年02月11日
    浏览(66)
  • Spark大数据分析与实战笔记(第一章 Scala语言基础-3)

    对于每一门编程语言来说,数组(Array)都是重要的数据结构之一,主要用来存储数据类型相同的元素。Scala中的数组分为定长数组和变长数组,定义定长数组,需要使用new,而定义变长数组时,则需要导包 import scala.collection.mutable.ArrayBuffer 。 数组(Array)主要用来存储

    2024年02月10日
    浏览(63)
  • Spark大数据分析与实战笔记(第一章 Scala语言基础-2)

    Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术,本身就是计算数据,而Scala既有面向对象组织项目工程的能力,又具备计算数据的功能,同时Spark和Scala的紧密集成,本书将采用Scala语言开发Spark程序,所以学好Scala将有助

    2024年02月11日
    浏览(61)
  • 企业Spark案例--酒店数据分析实战提交

    第1关:数据清洗--过滤字段长度不足的且将出生日期转: package com.yy   import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, Dataset, SparkSession} object edu{     /**********Begin**********/     // 此处可填写相关代码     case class Person(id:String,Name:String,CtfTp:String,CtfId:String,G

    2024年02月09日
    浏览(58)
  • Spark大数据分析与实战课后答案

    一、填空题 1、Scala语言的特性包含 面向对象编程 、函数式编程的、 静态类型的 、可扩展的、 可以交互操作的 。 2、在Scala数据类型层级结构的底部有两个数据类型,分别是 Nothing 和 Null 。 3、在Scala中,声明变量的有 var 声明变量和 val 声明常量。 4、在Scala中,获取

    2024年01月17日
    浏览(77)
  • Spark大数据分析与实战课后习题参考答案

    项目一: 一、选择题 DCCDAD 二、简答题 1、Hadoop MapReduce要求每个步骤间的数据序列化到磁盘,所以I/O成本很高,导致交互分析和迭代算法开销很大;Spark 提供了内存计算,把中间结果放到内存中,带来了更高的迭代运算效率。通过支持有向无环图(DAG)的分布式并行计算的编

    2024年02月11日
    浏览(37)
  • 大数据实战(hadoop+spark+python):淘宝电商数据分析

    虚拟机:Ubuntu 20.04.6 LTS docker容器 hadoop-3.3.4 spark-3.3.2-bin-hadoop3 python,pyspark, pandas,matplotlib mysql,mysql-connector-j-8.0.32.jar(下载不需要积分什么的) 淘宝用户数据 以上的技术积累需要自行完成 创建容器(##ubuntu的代码块,在ubuntu中运行,无特殊说明的在docker中运行) 更新软件

    2024年02月11日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包