spark部署在单台机器上面时,可以使用本地模式(Local)运行;当部署在分布式集群上面的时候,可以根据自己的情况选择Standalone模式(Spark自带的模式)、YARN-Client模式或者YARN-Cluster模式、Spark on Mesos模式。

本地单机模式

所有的Spark进程都运行在一台机器或一个虚拟机上面。Spark任务提交的方式为:


spark-submit master=local[3] ./bin/run-example org.apache.spark.examples.SparkPi

local 使用一个Worker线程本地化运行SPARK(完全不并行)

local[*]使用逻辑CPU个数数量的线程来本地化运行Spark

local[K]使用K个Worker线程本地化运行Spark(理想情况下,K应该根据运行机器的CPU核数设定)

Spark on Standalone模式

Standalone模式是Spark实现的资源调度框架,其主要的节点有Client节点、Master节点和Worker节点。其中Driver既可以运行在Master节点上中,也可以运行在本地Client端。当用spark-shell交互式工具提交Spark的Job时,Driver在Master节点上运行;当使用spark-submit工具提交Job或者在Eclipse、IDEA等开发平台上使用”new SparkConf.setManager(“spark://master:7077”)”方式运行Spark任务时,Driver是运行在本地Client端上的。

spark://HOST:PORT连接到指定的Spark standalone master。默认端口是7077.


$./spark-shell --master spark://hadoop1:7077 --executor-memory 1g

Yarn-Client模式

Driver在客户端本地运行,这种模式可以使得Spark Application和客户端进行交互,因为Driver在客户端,所以可以通过webUI访问Driver的状态,默认是http://ip:4040访问,而YARN通过http:// ip:8088访问。


$./spark-shell --master YARN-client --num-executors 3 --executor-memory 1g

YARN-Cluster模式

当用户向YARN中提交一个应用程序后,YARN将分两个阶段运行该应用程序:第一个阶段是把Spark的Driver作为一个ApplicationMaster在YARN集群中先启动;第二个阶段是由ApplicationMaster创建应用程序,然后为它向ResourceManager申请资源,并启动Executor来运行Task,同时监控它的整个运行过程,直到运行完成。


$./bin/spark-submit --master YARN-cluster --class xxx --executor-memory 512m xxx.jar

ResourceManager负责将集群的资源分配给各个应用使用,而资源分配和调度的基本单位是Container,其中封装了机器资源,如内存、CPU、磁盘和网络等,每个任务会被分配一个Container,该任务只能在该Container中执行,并使用该Container封装的资源。

YARN-Client 与 YARN-Cluster 区别

理解YARN-Client和YARN-Cluster深层次的区别之前先清楚一个概念:Application Master。在YARN中,每个Application实例都有一个ApplicationMaster进程,它是Application启动的第一个容器。它负责和ResourceManager打交道并请求资源,获取资源之后告诉NodeManager为其启动Container。从深层次的含义讲YARN-Cluster和YARN-Client模式的区别其实就是ApplicationMaster进程的区别。

  • YARN-Cluster模式下,Driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行,因而YARN-Cluster模式不适合运行交互类型的作业;
  • YARN-Client模式下,Application Master仅仅向YARN请求Executor,Client会和请求的Container通信来调度他们工作,也就是说Client不能离开。

Mesos Client模式

和YARN一样,Mesos在Spark中也分为client和cluster两种模式。使用client模式的话,Mesos框架直接在客户端运行,Driver在客户端本地运行。如果客户端关闭,那么驱动程序也就会停止运行。

使用下面的代码提交的spark任务就是client模式的。

在spark中使用messos

val conf = new SparkConf().setMaster("mesos://HOST:5050").setAppName("My app").set("spark.executor.uri", "<path to spark-2.1.0.tar.gz uploaded above>")
val sc = new SparkContext(conf)

​ 或者:

./bin/spark-shell --master mesos://host:5050

Mesos Cluster模式

​ 在Mesos的cluster模式中,driver程序在集群中运行,客户端的关闭不影响程序的运行。如果要使用cluster模式,在提交作业的时候需要指定–deploy-mode cluster.

./bin/spark-submit \--class org.apache.spark.examples.SparkPi \
  --master mesos://207.184.161.138:7077 \
  --deploy-mode cluster \
  --supervise \
  --executor-memory 20G \
  --total-executor-cores 100 \
  http://path/to/examples.jar \1000

Mesos的master的URL:

如果mesos只有一个master,master的url为:
mesos://host:5050如果messos有多个master(比如使用了zookeeper),master的url为:
mesos://zk://host1:2181,host2:2181,host3:2181/mesos

参考资料:

http://www.cnblogs.com/shishanyuan/archive/2015/08/19/4721326.html

http://spark.apache.org/docs/latest/running-on-mesos.html

Spark运行模式(local standalond,yarn-client,yarn-cluster,mesos-client,mesos-cluster)相关推荐

  1. Spark运行模式Local+Standalone+Yarn+mesos

    Spark运行模式Local+Standalone+Yarn+mesos bin/spark-submit --help 注意: --master MASTER_URL spark://host:po ...

  2. 详解Spark运行模式(local+standalone+yarn)

    一.简述 Spark 有多种运行模式: 1.可以运行在一台机器上,称为 Local(本地)运行模式. 2.可以使用 Spark 自带的资源调度系统,称为 Standalone 模式. 3.可以使用 Y ...

  3. 第三章 Spark运行模式及原理

    第三章 Spark运行模式及原理 目录 Spark运行模式概述 Local模式 Standalone模式 Local cluster模式 Mesos模式 YARN standalone/YARN cl ...

  4. 一篇文章读懂:Spark运行模式

    Spark性能调优与原理分析 01.Spark运行模式 运行Spark的应用程序,其实仅仅需要两种角色,Driver和Executor.Driver负责将用户的应用程序划分为多个Job,分成多个Tas ...

  5. spark封神之路(2)-spark运行模式

    本专栏系列视频教程 2 spark运行模式入门 1.官网地址 http://spark.apache.org/ 2.文档查看地址 https://spark.apache.org/docs/2.1.1 ...

  6. Spark 运行模式 standalong yarn

    standalong 模式需要在spark master 节点上启动 spark/sbin/start-all.sh 主从节点都可以run standalong client ./bin/spark- ...

  7. Spark运行模式Standalone 模式

    Standalone 模式 Standalone 模式概述 standalone n. 脱机; adj. 单独的,独立的; local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到 ...

  8. 4-spark学习笔记-spark运行模式与原理

  9. Spark的三种运行模式

    Spark三种运行模式 1.Spark运行模式: 2.验证Spark三种模式代码 1.Spark运行模式: ①Local(也称单节点模式):常用于开发和学习 ./spark-shell - -mast ...

最新文章

  1. selenium+Python(鼠标和键盘事件)
  2. 前端基础---HTML
  3. 物体的识别,检测,和分割
  4. 日期格式转换成时间戳格式php,php日期转时间戳,指定日期转换成时间戳
  5. 5.【练习题】构造方法与重载
  6. 基于Server-Sent Event的简单在线聊天室
  7. delphi之模糊找图
  8. 这可能是现实版程序员!
  9. 概率图模型更进一步的知识点
  10. 老黄投下新核弹:英伟达十年力作图灵架构,新GPU支持光线追踪
  11. 同时大量连接导致的DDOS攻击,导致收发器宕机,用户大面积超时掉线
  12. 用于分类的神经网络算法,神经网络算法通俗解释
  13. QQ空间的花花快速成长所需的东东(转)
  14. (信贷风控八)行为评分卡模型(B卡)的介绍
  15. 港股IPO,游艇巨头法拉帝的新市场、新机会
  16. linux修改用户名、密码、组名等详细步骤
  17. ICE之Slice语言
  18. 【LG-P4332 [SHOI2014]】三叉神经树 题解
  19. Python爬虫实战练习:爬取微信公众号文章
  20. VC++编译lua库 无法解析lua符号问题

热门文章

  1. 魅族手机使用应用沙盒一键修改位置数据
  2. exit的用法python_python 中exit,sys.exit,os._exit用法
  3. matlab中gen2par函数,R语言中绘图par()函数用法
  4. vs2008格式化代码
  5. RedHat Enterprise Linux 5下配置Apache+Mysql+Php
  6. 一年结构转换,陌陌走向稳健盈利,唐岩没有放手理由
  7. 获取运行中的TeamViewer的账号和密码--中文版
  8. 公众号第三方平台开发 获取 component_verify_ticket
  9. backgroundworker控件的使用(线程传值)
  10. iPhone开发:类似iChat的聊天泡泡示例