zoukankan      html  css  js  c++  java
  • 五、standalone运行模式

    在上文中我们知道spark的集群主要有三种运行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什么是standalone运行模式,它的运行流程是怎么样的。

    简介

    standalone模式,是spark自己实现的,它是一个资源调度框架。这里我们要关注这个框架的三个节点:

    1)client

    2)master

    3)worker

    spark应用程序有一个Driver驱动,Driver可以运行在Client上也可以运行在master上。如果你使用spark-shell去提交job的话它会是运行在master上的,如果你使用spark-submit或者IDEA开发工具方式运行,那么它是运行在Client上的。这样我们知道了,Client的主体作用就是运行Driver。而master除了资源调度的作用还可以运行Driver。

    再关注master和worker节点,standalone是一个主从模式,master节点负责资源管理,worker节点负责任务的执行。

    运行流程

    了解standalone主要节点之后,我们看一下它的运行流程,如图:

    1)当spark集群启动以后,worker节点会有一个心跳机制和master保持通信;

    2)SparkContext连接到master以后会向master申请资源,而master会根据worker心跳来分配worker的资源,并启动worker的executor进程

    3)SparkContext将程序代码解析成dag结构,并提交给DagScheduler;

    4)dag会在DagScheduler中分解成很多stage,每个stage包含着多个task

    5)stage会被提交给TaskScheduler,而TaskScheduler会将task分配到worker,提交给executor进程,executor进程会创建线程池去执行task,并且向SparkContext报告执行情况,直到task完成;

    6)所有task完成以后,SparkContext向Master注销并释放资源

    总结

    standalone的是spark默认的运行模式,它的运行流程主要就是把程序代码解析成dag结构,并再细分到各个task提交给executor线程池去并行计算

    在运行流程中我们并没有提到job这个概念,只是说dag结构会被分解成很多的stage。其实,分解过程中如果遇到action操作(这不暂时不关注action操作是什么),那么就会生成一个job,而每一个job都包含着一个或者多个stage,所以job和stage也是一个总分的逻辑关系。

  • 相关阅读:
    vue跨域代理配置
    vue中引入jquery
    vue中使用特殊字体
    vue中使用mockjs
    vue中使用动态echart图表
    解决win10休眠后无法唤醒
    nvm-windows的安装配置
    黑苹果快捷键
    python基础知识
    如何高效的学习python
  • 原文地址:https://www.cnblogs.com/lay2017/p/10054559.html
Copyright © 2011-2022 走看看