Spark运行模式(local standalond,yarn-client,yarn-cluster,mesos-client,mesos-cluster)
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)相关推荐
- Spark运行模式Local+Standalone+Yarn+mesos
Spark运行模式Local+Standalone+Yarn+mesos bin/spark-submit --help 注意: --master MASTER_URL spark://host:po ...
- 详解Spark运行模式(local+standalone+yarn)
一.简述 Spark 有多种运行模式: 1.可以运行在一台机器上,称为 Local(本地)运行模式. 2.可以使用 Spark 自带的资源调度系统,称为 Standalone 模式. 3.可以使用 Y ...
- 第三章 Spark运行模式及原理
第三章 Spark运行模式及原理 目录 Spark运行模式概述 Local模式 Standalone模式 Local cluster模式 Mesos模式 YARN standalone/YARN cl ...
- 一篇文章读懂:Spark运行模式
Spark性能调优与原理分析 01.Spark运行模式 运行Spark的应用程序,其实仅仅需要两种角色,Driver和Executor.Driver负责将用户的应用程序划分为多个Job,分成多个Tas ...
- spark封神之路(2)-spark运行模式
本专栏系列视频教程 2 spark运行模式入门 1.官网地址 http://spark.apache.org/ 2.文档查看地址 https://spark.apache.org/docs/2.1.1 ...
- Spark 运行模式 standalong yarn
standalong 模式需要在spark master 节点上启动 spark/sbin/start-all.sh 主从节点都可以run standalong client ./bin/spark- ...
- Spark运行模式Standalone 模式
Standalone 模式 Standalone 模式概述 standalone n. 脱机; adj. 单独的,独立的; local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到 ...
- 4-spark学习笔记-spark运行模式与原理
- Spark的三种运行模式
Spark三种运行模式 1.Spark运行模式: 2.验证Spark三种模式代码 1.Spark运行模式: ①Local(也称单节点模式):常用于开发和学习 ./spark-shell - -mast ...
最新文章
- selenium+Python(鼠标和键盘事件)
- 前端基础---HTML
- 物体的识别,检测,和分割
- 日期格式转换成时间戳格式php,php日期转时间戳,指定日期转换成时间戳
- 5.【练习题】构造方法与重载
- 基于Server-Sent Event的简单在线聊天室
- delphi之模糊找图
- 这可能是现实版程序员!
- 概率图模型更进一步的知识点
- 老黄投下新核弹:英伟达十年力作图灵架构,新GPU支持光线追踪
- 同时大量连接导致的DDOS攻击,导致收发器宕机,用户大面积超时掉线
- 用于分类的神经网络算法,神经网络算法通俗解释
- QQ空间的花花快速成长所需的东东(转)
- (信贷风控八)行为评分卡模型(B卡)的介绍
- 港股IPO,游艇巨头法拉帝的新市场、新机会
- linux修改用户名、密码、组名等详细步骤
- ICE之Slice语言
- 【LG-P4332 [SHOI2014]】三叉神经树 题解
- Python爬虫实战练习:爬取微信公众号文章
- VC++编译lua库 无法解析lua符号问题
热门文章
- 魅族手机使用应用沙盒一键修改位置数据
- exit的用法python_python 中exit,sys.exit,os._exit用法
- matlab中gen2par函数,R语言中绘图par()函数用法
- vs2008格式化代码
- RedHat Enterprise Linux 5下配置Apache+Mysql+Php
- 一年结构转换,陌陌走向稳健盈利,唐岩没有放手理由
- 获取运行中的TeamViewer的账号和密码--中文版
- 公众号第三方平台开发 获取 component_verify_ticket
- backgroundworker控件的使用(线程传值)
- iPhone开发:类似iChat的聊天泡泡示例