Spark 的官方从 Cluster Mode Overview 中,官方向我们介绍了 cluster 模式的部署方式。

Spark 作为独立进程在集群上运行,他们通过 SparkContext 进行协调。

SparkContext 可以通过多种方式来连接 Cluster Managers 资源调度器。我们先来看下这个集群模式的架构图

首先我要神明一点 standalone 也是集群模式的一种。只是说他不是通过第三方调度器比如 Yarn | Mesos  。我一直被这个名字误导,一直觉得是不是 alone 就是单机模式的意思?其实不是,他是 spark 在没有第三方调度器的情况下,自己对资源进行申请调度的一种方式。采用这种方式会有一个 Driver Program 作为 master 负责调度资源。

不管我们选用哪种第三方调度器,我们都会在获得资源之后申请 executor ,在使用 yarn 的情况下这些 executor 会分散在集群中各个  application_master 上面。

这些 spark 的 executor 会处理计算并存储你的应用信息。这个时候申请好 executor 之后我们就可以将代码通过 SC 发送到 executor 了。最后 SparkContext 会发送 task 到 executors 里面去 run 。

我们来整理一下上面提到的信息。

首先这种通过第三方调度器的是集群模式。集群模式在申请 SparkContext 的时候有很多种模式,拿 Yarn 举例。

yarn-client客户端模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。
yarn-cluster集群模式 连接到 YARN 集群 。需要配置 HADOOP_CONF_DIR。

这里的 yarn-client 模式简单理解就是说 我们提交任务的机器可以作为 driver 他一般在集群之中。这样的话我们提交任务之后会直接由提交任务的机器充当 driver 角色。drvier 需要在应用的整个运行周期里面都保持连接和存活。

yarn-client 可以理解为一个远程的提交任务的机器时候使用的参数。因为只提交任务,并不在集群种参与计算,也不充当 driver 。所以一般 yarn 会在收到这种模式任务之后,现在集群内部创建一个 driver 然后再开始上面 yarn-client 做的后续工作。

剩下的模式

local 本地单线程
local[K] 本地多线程(指定K个内核)
local[*] 本地多线程(指定所有可用内核)
spark://HOST:PORT 连接到指定的 Spark standalone cluster master,需要指定端口。
mesos://HOST:PORT 连接到指定的 Mesos 集群,需要指定端口。

这些参数都可以在 spark-submit --master local 这个参数里设置。对应 ss 或者 sc 应用的

sc_conf.setMaster('local[4]')

这样的函数设置。

这里注意我们在使用 yarn 的时候如果直接写 yarn ,其实我们使用的是 yarn-client 模式。

这里还有一个关于 Deploy mode glossary

Deploy mode    Distinguishes where the driver process runs. In "cluster" mode, the framework launches the driver inside of the cluster. In "client" mode, the submitter launches the driver outside of the cluster.

如果我需要直接让应用在本地执行,比如我使用 jupyter 调试程序。

当然可以直接在申请资源的时候设置 local

这样的话本地环境比较可控也方便,坑也比较少 美滋滋。

Reference:

https://www.zhihu.com/question/23967309    spark在那里指定master URL呢

https://www.cnblogs.com/ITtangtang/p/7967386.html    Spark On Yarn的两种模式yarn-cluster和yarn-client深度剖析

Spark 部署即提交模式意义解析的更多相关文章

  1. Spark之Yarn提交模式

    一.Client模式 提交命令: ./spark-submit --master yarn --class org.apache.examples.SparkPi ../lib/spark-examp ...

  2. 入门大数据---Spark部署模式与作业提交

    一.作业提交 1.1 spark-submit Spark 所有模式均使用 spark-submit 命令提交作业,其格式如下: ./bin/spark-submit \ --class <ma ...

  3. Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式

    参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7 ...

  4. spark提交模式

    spark基本的提交语句: ./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --depl ...

  5. 【Spark篇】--Spark中Standalone的两种提交模式

    一.前述 Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式. 二.具体         1.Standalon ...

  6. Spark Standalone 提交模式

    一.Client提交模式 提交命令: ./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.Spar ...

  7. spark基于yarn的两种提交模式

    一.spark的三种提交模式 1.第一种,Spark内核架构,即standalone模式,基于Spark自己的Master-Worker集群. 2.第二种,基于YARN的yarn-cluster模式. ...

  8. 小记--------spark的两种提交模式

    spark的两种提交模式:yarn-cluster . yarn-client 图解

  9. Spark 集群 任务提交模式

    Spark 集群的模式及提交任务的方式 本文大致的内容图 Spark 集群的两种模式: Standalone 模式 Standalone-client 任务提交方式 提交命令 ./spark-subm ...

随机推荐

  1. YAML语言简明教程

    编程免不了要写配置文件,如果你还在用xml/ini/json,就有点过时了,怎么写配置也是一门学问. YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. 本文介绍 YAM ...

  2. window当mac用,VirtualBox虚拟机安装os系统

    mac的环境让开发者很享受,既可以像在linux环境下开发,又可以享受到几乎window所有支持的工具软件,比如ide,note,browser 我的安装过程 1.首先你有了64位的window7操作 ...

  3. Python与Golang对比

    一:前言 刚看了一篇软文,说什么“才华是改变人生最有效的途径”,反正呢,大体就是科技进步,要想一直在车上,就得不断的学习,刚好最近也准备学习Golang,最近火的不能在火了吧,刚好也有些Python基 ...

  4. Celery在Django中的使用介绍

    Celery在Django中的使用介绍 Celery简介 celery是一个简单.灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必须工具. 它是一个专注于实时处理的任务队列,同时也 ...

  5. 44、css实现水波纹效果

    <div class="container"> <div class="wave"><span>50%</span&g ...

  6. Java梗概

    Java平台:J2SE(桌面).J2ME(逐渐被android取代).J2EE(企业级针对web程序) Java是在JVM虚拟机上运行,跨平台本质是在不同平台上运行JVM虚拟机 JRE = JVM+核 ...

  7. React-router5.x 路由的使用及配置

    在 React router 中通常使用的组件有三种: 路由组件(作为根组件): BrowserRouter(history模式) 和 HashRouter(hash模式) 路径匹配组件: Route ...

  8. Tachyon内存文件系统快速入门

    一.简介 Tachyon是介于磁盘存储和计算框架之间的一种中间件,用于实现分布式的内存文件读写等功能,实现分布式集群内部共享数据. 应用实例: 二.架构 1.心跳机制 在Tachyon中,心跳用于Ma ...

  9. httprunner运行报错问题:base url missed

    在httprunner运行报错问题 代码书写: 当此段yml文件运行时会出现一下错误 在出现此错误时,为base_url的格式出现错误,只需修改base_url的位置 修改位置后运行yml文件 运行成 ...

  10. Windows & Ubuntu 双系统完美卸载Ubuntu(不残留,无污染)

    双系统卸载Ubuntu时,如若直接从Windows磁盘管理里格式化Ubuntu分区,由于Ubuntu的引导盘的原因,会导致电脑启动时出现问题,所以不建议这样的操作. 卸载Ubuntu前需要区分BIOS ...