zoukankan      html  css  js  c++  java
  • 简述Spark工作流程

     Spark工作流程由4个主体联系构成(如上图所示):

    • Application:指用户编写的Spark应用程序,其中包括一个Driver功能的代码和分布在集群中多个节点上运行的Executor代码
    • Master:主节点,布置作业
      • Block Tracker用于记录计算数据在Worker节点上的块信息
      • Shuffle Blocker用于记录RDD在计算过程中遇到Shuffle过程时会进行物化,Shuffle Tracker用于记录这些物化的RDD的存放信息
    • Cluster Manager:控制整个集群,监控worker
    • Worker:从节点负责控制计算,启动Executor或者Driver。
      • Driver: 运行Application 的main()函数
      • Executor:执行器,是为某个Application运行在worker node上的一个进程
         
    工作流程:
    1. 用户编写应用程序以后交给Master
    2. Master启动RDD Graph,对任务进行划分,构建DAG图。将DAG图分解成Stage,将Taskset发送给Task Scheduler。
    3. 由Task Scheduler将Task发送给Executor运行
    4. 在这期间,Manager会负责监管Worker的运行。计算结果层层返回。

    具体实现:

    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工作流程及原理(一)

  • 相关阅读:
    Webpack安装及基础配置
    相机拍到了光源的灯珠图像
    面向对象特殊用法
    面向对象初始
    内置函数和必须的模块
    模块基本模式
    函数三
    函数二
    装饰器
    函数初识
  • 原文地址:https://www.cnblogs.com/vinchy-z/p/13219718.html
Copyright © 2011-2022 走看看