spark on mesos 两种运行模式
spark on mesos 有粗粒度(coarse-grained)和细粒度(fine-grained)两种运行模式,细粒度模式在spark2.0后开始弃用。
细粒度模式
优点
spark默认运行的就是细粒度模式,这种模式支持资源的抢占,spark和其他frameworks以非常细粒度的运行在同一个集群中,每个application可以根据任务运行的情况在运行过程中动态的获得更多或更少的资源(mesos动态资源分配),但是这会在每个task启动的时候增加一些额外的开销。这个模式不适合于一些低延时场景例如交互式查询或者web服务请求等。
启动spark-shell,启动时不占有资源,需要运行task后才去申请
缺点
spark中运行的每个task的运行都需要去申请资源,也就是说启动每个task都增加了额外的开销。
在一些task数量很多,可是任务量比较轻的应用中,该开销会被放大。
例如:
遍历一个hdfs中拥有3w分区的数据(56亿条)任务:
| 粗粒度模式耗时 | 细粒度模式耗时 |
|---|---|
| 50s | 420s |
粗粒度模式
该模式的优点是启动task的时候开销比较小,但是该模式运行的时候每个application会一直占有一定的资源,直到整个application结束后才会释放资源。
启动spark-shell,启动应用时即占有资源
可以在conf/spark-default.conf中开启粗粒度模式
spark.mesos.coarse true
在粗粒度模式下,一个application启动时会获取集群中所有的cpu(mesos资源邀约的所有cpu), 这会导致在这个application运行期间你无法再运行其他任务。你可以控制一个application获取到的最大资源来解决这个问题。
例如你可以设置最大的cpu使用数
在conf/spark-default.conf中设置
spark.cores.max 10
这样提交任务后,application会一直占用10个cpu,不会增加也不会减少,直到完全运行结束。
spark在1.5中提供了动态executor调整的功能,可以缓解资源长期不释放的问题。
一些相关参数
| 属性名 | 默认值 | 描述 |
|---|---|---|
| spark.mesos.coarse | false | 是否使用粗粒度模式运行spark任务| |
| spark.mesos.extra.cores | 0 | 只能在粗粒度模式下使用,为每个task增加额外的cpu,但是总的cpu数不会超过spark.cores.max设置的数量 |
| spark.mesos.mesosExecutor.cores | 1.0 | 即使spark task没有执行,每个mesos executor也会持续的拥有这些cpu,可以设置浮点数 |
| spark.mesos.executor.memoryOverhead | executor memory * 0.10, with minimum of 384 | 每个executor额外的一些内存,单位是mb,默认情况下,该值是spark.executor.memory 的0.1倍,且不小于384mb。如果进行了设置,就会变成你设置的值 |
spark on mesos 两种运行模式的更多相关文章
- Spark on YARN两种运行模式介绍
本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发) 问题导读 1.Spark ...
- Spark on YARN的两种运行模式
Spark on YARN有两种运行模式,如下 1.yarn-cluster:适合于生产环境. Spark的Driver运行在ApplicationMaster中,它负责向YARN Re ...
- Spark Client和Cluster两种运行模式的工作流程
1.client mode: In client mode, the driver is launched in the same process as the client that submits ...
- 在 IIS 7.5 中,应用程序池有两种运行模式:集成模式和经典模式。
应用程序池模式会影响服务器处理托管代码请求的方式. 如果托管应用程序在采用集成模式的应用程序池中运行,服务器将使用 IIS 和 ASP.NET 的集成请求处理管道来处理请求. 如果托管应用程序在采用经 ...
- 【Spark篇】--Spark中Standalone的两种提交模式
一.前述 Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式. 二.具体 1.Standalon ...
- 小记--------spark的两种提交模式
spark的两种提交模式:yarn-cluster . yarn-client 图解
- Spark剖析-宽依赖与窄依赖、基于yarn的两种提交模式、sparkcontext原理剖析
Spark剖析-宽依赖与窄依赖.基于yarn的两种提交模式.sparkcontext原理剖析 一.宽依赖与窄依赖 二.基于yarn的两种提交模式深度剖析 2.1 Standalne-client 2. ...
- Apache Flink on K8s:四种运行模式,我该选择哪种?
1. 前言 Apache Flink 是一个分布式流处理引擎,它提供了丰富且易用的API来处理有状态的流处理应用,并且在支持容错的前提下,高效.大规模的运行此类应用.通过支持事件时间(event-ti ...
- java web学习总结(二十九) -------------------JavaBean的两种开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...
随机推荐
- Linux下/etc/resolv.conf 配置DNS客户
文件/etc/resolv.conf配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数.下面是一个例子文件: search mydom ...
- [LeetCode]题解(python):057-Insert Interval
题目来源 https://leetcode.com/problems/insert-interval/ Given a set of non-overlapping intervals, insert ...
- iOS Architecture和Valid architectures
目前ios的指令集有以下几种: 1,armv6,支持的机器iPhone,iPhone2,iPhone3G及对应的iTouch 2,armv7,支持的机器iPhone4,iPhone4S 3,armv7 ...
- APICloud上有关iOS证书的一些问题
1. 苹果开发者账号及其区别: 苹果的开发者账号分为个人.公司和企业三类. 个人是99$一年,只能个人使用,可以提交应用到AppStore: 公司的也是99$,但是可以邀请其它成员一起使用,可以提交应 ...
- php中对2个数组相加的函数
<?php function array_add($a,$b){ //根据键名获取两个数组的交集 $arr=array_intersect_key($a, $b); //遍历第二个数组,如果键名 ...
- jquery.form插件
提交表单的2种方式 // ajaxForm $("#form1").ajaxForm(options); // ajaxSubmit $ ...
- Android --ListView模板
调整了近一上午的模板 ListView表头 <?xml version="1.0" encoding="utf-8"?> <LinearLay ...
- Java Map操作
Map:键必须是唯一 同步方法:Map m = Collections.synchronizedMap(new TreeMap(...)); Hashtable:基于散列表的实现 允许空键空值 线程安 ...
- 第十四篇 Integration Services:项目转换
本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业 ...
- python判断类型
方法 isinstance(obj, type) 示例 >>> print isinstance(, int) True >>> print isinstance( ...