Spark 集群的模式及提交任务的方式

  • 本文大致的内容图

  • Spark 集群的两种模式:

    • Standalone 模式

      • Standalone-client 任务提交方式

        • 提交命令

          ./spark-submit
          --master spark://node1:7077 (主节点的位置)
          --class 类的包+类名
          jar包的位置
          1000 # 分区参数, 也可以说是并行度

          ||

          ./spark-submit
          --master spark://node1:7077
          --deploy-mode client
          --class 类的包+类名
          jar包的位置
          100 # 分区参数, 也可以说是并行度
        • 执行原理

        • 执行流程

          1. client 模式提交任务后, 会在客户端启动Driver进程
          2. Driver 会向 Master 申请启动 Application启动的资源
          3. 资源申请成功, Driver 端将 task 发送到 worker端执行
          4. Worker 端将 task 执行结果 返回 到 Driver 端
        • 总结

          • client模式适用于测试调试程序。
          • Driver进程是在客户端启动的。这里的客户端指的是应用程序的当前节点
          • 在Driver端可以看到task执行的情况。
          • 生产环境下不能使用client模式是因为: 假设提交100个 Application 到集群运行, Driver每次都会在client端启动, 那么就会导致客户端100次网卡流量暴增。
      • Standalone-cluster 任务提交方式

        • 提交命令

          ./spark-submit
          --master spark://node1:7077
          --deploy-mode cluster
          --class 包+类名
          jar包的位置
          100 # 分区参数, 也可以说是并行度 #注意:Standalone-cluster提交方式,应用程序使用的所有jar包和文件,必须保证所有的worker节点都要有,因为此种方式,spark不会自动上传包。
          # 解决方式:
          # 1.将所有的依赖包和文件打到同一个包中,然后放在hdfs上。
          # 2.将所有的依赖包和文件各放一份在worker节点上。
        • 执行原理

        • 执行流程

          1. cluster模式提交应用程序后会先向 Master 请求启动 Driver
          2. Master 接收请求, 随机在集中的一台节点启动Driver进程
          3. Driver启动后为当前的应用程序申请资源
          4. Driver端发送task到worker节点上执行
          5. worker 将执行情况和执行结果返回 Driver
        • 总结

          • Standalone-cluster 运行方式适用于生产环境
          • 此时在driver端界面看不到执行任务情况
          • 由于driver会被随机分配到worker节点上启动, 那么不会有流量激增问题
    • On Yarn 模式

      • Yarn-client 任务提交方式

        • 提交命令

          ./spark-submit
          --master yarn
          --class 包+类名
          jar文件位置
          100

          ||

          ./spark-submit
          --master yarn–client
          --class 包+类名
          jar文件位置
          100

          ||

          ./spark-submit
          --master yarn
          --deploy-mode client
          --class 包+类名
          jar文件位置
          100
        • 执行原理

        • 执行流程

          1. 客户端提交一个 Application, 在客户端启动一盒Driver 进程。
          2. 应用程序启动后会向RM(ResourceManager) 发送请求, 启动AM(ApplicationMaster)
          3. RM 收到请求, 随机选择一台 NM(NodeManager)启动AM。这里的NM相当于Standalone中的Worker节点
          4. AM 启动后, 会向 RS 请求一批container资源, 用于启动Executor
          5. RM会找到一批NM返回给AM, 用于启动Executor
          6. AM会向NM发送命令启动Executor
          7. Executor 启动后, 会反向注册给Driver, Driver 发送 task 到 Executor, 执行情况和结果返回给Driver端
        • 总结

          • Yarn-client模式同样适用于测试, 因为Driver运行在本地, Driver会与yarn集群中的Executor 进行大量的通信, 会造成客户机网卡流量的大量增加

          • ApplicationMaster 的作用:

            • 为当前的Application申请资源

            • 给NodeManager发送消息启动Executor

      • Yarn-cluster 任务提交方式

        • 提交命令

          ./spark-submit
          --master yarn
          --deploy-mode cluster
          --class 包+类名
          jar文件位置
          100

          ||

          /spark-submit
          --master yarn-cluster
          --class 包+类名
          jar文件位置
          100
        • 执行原理

        • 执行流程

          1. 客户机提交Application应用程序, 发送请求到RM(ResourceManager), 请求启动(ApplicationMaster)
          2. RM收到请求后随即在一台 NM(NodeManager) 上启动 AM(相当于Driver 端)
          3. AM启动后, AM 发送请求到 RM, 申请一批容器(container)来启动Executor
          4. RM 返回一批 NM 节点 给 AM
          5. AM 连接到 NM, 发送请求到 NM 启动 Executor
          6. Executor 反向注册到 AM 所在节点的 Driver,Driver再发送task到Executor
        • 总结

          • Yarn-Cluster 主要用于生产环境中, 因为 Driver运行在 Yarn 集群中某一台NodeManager中, 每次提交任务的 Driver 所在机器都是随机的, 并不会产生一台机器网卡流量激增的现象。
          • 缺点是提交任务不能看到日志, 只能通过yarn查看日志
          • ApplicationMaster的作用
            • 为当前的 Application 申请资源
            • 给NodeManger 发送消息启动 Executor
            • 任务调度

Spark 集群 任务提交模式的更多相关文章

  1. Spark集群任务提交

    1. 集群管理器 Spark当前支持三种集群管理方式 Standalone—Spark自带的一种集群管理方式,易于构建集群. Apache Mesos—通用的集群管理,可以在其上运行Hadoop Ma ...

  2. Spark集群任务提交流程----2.1.0源码解析

    Spark的应用程序是通过spark-submit提交到Spark集群上运行的,那么spark-submit到底提交了什么,集群是怎样调度运行的,下面一一详解. 0. spark-submit提交任务 ...

  3. Spark集群之yarn提交作业优化案例

    Spark集群之yarn提交作业优化案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.启动Hadoop集群 1>.自定义批量管理脚本 [yinzhengjie@s101 ...

  4. CentOS6安装各种大数据软件 第十章:Spark集群安装和部署

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  5. Spark集群模式&Spark程序提交

    Spark集群模式&Spark程序提交 1. 集群管理器 Spark当前支持三种集群管理方式 Standalone-Spark自带的一种集群管理方式,易于构建集群. Apache Mesos- ...

  6. 大数据学习day18----第三阶段spark01--------0.前言(分布式运算框架的核心思想,MR与Spark的比较,spark可以怎么运行,spark提交到spark集群的方式)1. spark(standalone模式)的安装 2. Spark各个角色的功能 3.SparkShell的使用,spark编程入门(wordcount案例)

    0.前言 0.1  分布式运算框架的核心思想(此处以MR运行在yarn上为例)  提交job时,resourcemanager(图中写成了master)会根据数据的量以及工作的复杂度,解析工作量,从而 ...

  7. Spark集群模式概述

    作者:foreyou出处:http://www.foreyou.net/2015/06/22/spark-cluster-mode-overview/声明:本文采用以下协议进行授权: 署名-非商用|C ...

  8. 向Spark集群提交任务

    1.启动spark集群. 启动Hadoop集群 cd /usr/local/hadoop/ sbin/start-all.sh 启动Spark的Master节点和所有slaves节点 cd /usr/ ...

  9. Spark集群的任务提交执行流程

    本文转自:https://www.linuxidc.com/Linux/2018-02/150886.htm 一.Spark on Standalone 1.spark集群启动后,Worker向Mas ...

随机推荐

  1. Batch批量替换hosts

    hosts文件替换 工作需要,要修改很多计算机的hosts文件,采用bat批量完成 解决的问题: 1.pc工作在非管理员权限,右键管理员权限太麻烦,因此采用执行中申请管理员权限的方式 2.hosts和 ...

  2. VNC怎么和宿主机共享粘贴板

    VNC怎么和宿主机共享粘贴板 假设目标主机是linux,终端主机是windows(就是在windows上使用VNC登陆linux) 在linux中执行vncconfig -nowin& 在li ...

  3. [SUCTF 2019]CheckIn

    进入靶场只有一个文件上传界面,上传php一句话木马提示非法后缀. 尝试利用php后缀的多样性绕过,发现都被过滤掉了,先把php改成.jpg的图片,提示说有问号在内容中. php后缀的多样性:php语言 ...

  4. 易升地址,windows 10, 1511 升级 1607 仍然有效

    https://www.microsoft.com/zh-cn/software-download/windows10 易升地址, windows 10 ,1511 升级 1607 仍然有效

  5. 小程序行内元素且有border的情况下,根据文字宽度自动调节元素宽度

    比如认识成都: <view style="display: flex;align-items: center;"> <text class="cityV ...

  6. vue前端项目初始化的步骤

    前端项目初始化的步骤 1. 安装vue脚手架 2.通过vue脚手架创建项目 可以直接    vue create  项目名 也可以 vue ui 3.配置vue路由 4.配置Element-ui 组件 ...

  7. express 配置 https 服务 ( 以阿里云服务器为例), 探索一周终于搞定

    首先最重要的是 你要明白 https接口的接收或者发送 的形式 是  https://域名:端口号   而不是 https://ip:端口号   一,首先,去阿里云注册免费ssl证书   1,在搜索框 ...

  8. jsp中include的两种用法

    JSP中的include的两种用法 1.两种用法 <%@ include file=” ”%> <jsp:include page=” ” flush=”true”/> 2.用 ...

  9. Manjaro Linux 添加源及输入法

    生成可用的中国镜像站列表 sudo pacman-mirrors -i -c China -m rank 勾选相应的镜像站 ,看自己的喜好 如中科大:http://mirrors.ustc.edu.c ...

  10. 2020寒假 05 ——eclipse安装scala环境

    在eclipse中安装Scala环境 1安装eclipse插件步骤,点击help,选择Eclipse Marketplace 2.输入Scala,点击go 3.选择搜索到的Scala IDE 4.7. ...