美文网首页
spark工作原理和介绍

spark工作原理和介绍

作者: 摩V羯座 | 来源:发表于2021-11-25 17:22 被阅读0次

    https://zhuanlan.zhihu.com/p/34436165
    https://zhuanlan.zhihu.com/p/70424613

    1.介绍

    Spark 是专为大规模数据处理而设计的快速通用的计算引擎。是Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

    2.Spark 系统架构

    image.png

    3.Spark基本概念

    1.RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。
    2.DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系。如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。
    3.Driver Program:控制程序,负责为Application构建DAG图。
    4.Cluster Manager:集群资源管理中心,负责分配计算资源。
    5.Worker Node:工作节点,负责完成具体计算。
    6.Executor:是运行在工作节点(Worker Node)上的一个进程,负责运行Task,并为应用程序存储数据。
    7.Application:用户编写的Spark应用程序,一个Application包含多个Job。
    8.Job:作业,一个Job包含多个RDD及作用于相应RDD上的各种操作。
    9.Stage:阶段,是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”。
    10.Task:任务,运行在Executor上的工作单元,是Executor中的一个线程。

    总结:

    • Cluster Manager在standalone模式中即为Master主节点,控制整个集群,监控worker。
    • Worker Node从节点,负责控制计算节点,启动Executor或者Driver
    • Executor是在WorkerNode上起的一个进程
    • Task,负责内存和磁盘的使用。
    • Driver是统管Task的产生与发送给Executor的,运行Application 的main()函数
    • Application由多个Job组成,Job由多个Stage组成,Stage由多个Task组成。Stage是作业调度的基本单位。

    4.Spark 运行原理

    image.png
    image.png

    1.构建Spark Application的运行环境,启动SparkContext
    2.SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend,
    3.Executor向SparkContext申请Task
    4.SparkContext将应用程序分发给Executor
    5.SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行
    6.Task在Executor上运行,运行完释放所有资源

    相关文章

      网友评论

          本文标题:spark工作原理和介绍

          本文链接:https://www.haomeiwen.com/subject/xjlatrtx.html