Yarn (转自之乎者也)
链接:https://www.zhihu.com/question/34016617/answer/57822812
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Yarn设计的初衷就是为了在同一套集群上面跑不同的应用框架。至于为什么要在同一套集群上面跑不同的应用则是出于提高集群资源利用率的角度考虑的。
不同的分布式框架各有优势,针对的业务场景是不一样的。MapReduce能更好的处理大批量的ETL业务而Spark则相对更为专注于Machine Learning。对于公司而言,这些业务如果能在同一集群上面跑则能有效降低成本。要允许不同框架同时运行在同一集群,最首要解决的问题就是如何分配资源。在没有Yarn的时候,一个比较简单的做法是,假设集群有100台机器,我们将50台机器分配给Spark,将另外50台分配给MapReduce任务。这样做似乎并没什么不妥。但是假设每天我们跑MapReduce的任务时间只有1小时,其他大部分时间都是在跑Spark,那么一天里面有23小时,50台机器都处于空闲状态,而Spark的机器则很可能有大量的作业在排队。这显然不是一个很有效利用集群的方法。
Yarn全称为Yet Another Resource Negotiator。 顾名思义,他就是一个资源管理工具。在全局范围里面,他知道集群有哪些空闲的机器。当用户提交作业时,Yarn只需要分配用户要求的资源,然后由作业自身去调用,配置和管理相应的运算框架。这样可以有效地避免上面提到的问题。再进一步说,Yarn将可分配的资源抽象为容器(Container),降低了资源分配的粒度。假如一台机器上面资源足够,则可能同时运行Spark和MapReduce两种作业。进一步提高了资源的利用率。
Yarn (转自之乎者也)的更多相关文章
- 大数据之Yarn——Capacity调度器概念以及配置
试想一下,你现在所在的公司有一个hadoop的集群.但是A项目组经常做一些定时的BI报表,B项目组则经常使用一些软件做一些临时需求.那么他们肯定会遇到同时提交任务的场景,这个时候到底如何分配资源满足这 ...
- [大数据之Yarn]——资源调度浅学
在hadoop生态越来越完善的背景下,集群多用户租用的场景变得越来越普遍,多用户任务下的资源调度就显得十分关键了.比如,一个公司拥有一个几十个节点的hadoop集群,a项目组要进行一个计算任务,b项目 ...
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- 03 Yarn 原理介绍
Yarn 原理介绍 大纲: Hadoop 架构介绍 YARN 产生的背景 YARN 基础架构及原理 Hadoop的1.X架构的介绍 在1.x中的NameNodes只可能有一个,虽然可以通过Se ...
- Spark on YARN的部署
Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on ...
- yarn关于app max attempt深度解析,针对长服务appmaster平滑重启
在YARN上开发长服务,需要注意fault-tolerance,本篇文章对appmaster的平滑重启的一个参数做了解析,如何设置可以有助于达到appmaster平滑重启. 在yarn-site.xm ...
- Spark源码编译并在YARN上运行WordCount实例
在学习一门新语言时,想必我们都是"Hello World"程序开始,类似地,分布式计算框架的一个典型实例就是WordCount程序,接触过Hadoop的人肯定都知道用MapRedu ...
- 配置Spark on YARN集群内存
参考原文:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 运行文件有几个G大,默 ...
- 【hadoop2.2(yarn)】基于yarn成功执行分布式map-reduce,记录问题解决过程。
hadoop2.x改进了hadoop1.x的架构, 具体yarn如何工作以及改进了什么可以在网上学, 这里仅记录我个人搭建的问题和理解,希望能帮助遇到困难的朋友. 在开始前,必须了解yarn版本的ma ...
随机推荐
- nginx配置优化提高并发量
1 nginx配置优化提高并发量 worker_processes 2; 这个按照CPU的核数来决定 2 worker_connections 65535; 这个一般设置65535即可 每个进程允许的 ...
- 2019 西安邀请赛 D
//n件物品,m种关系,(有关系的2个不能在同一组) //把所有物品分为2组,希望最后2组的差值尽可能小,输出较大者 /* 二分图涂色+可行性(01)背包 dp[i] =1表示 最后差值为i可行 建图 ...
- Angular 使用 ng2-file-upload 上传文件遇到的问题
Angular 上传文件 可参考Angular2使用ng2-file-upload上传文件 这里记录在开发过程中遇到的问题: 删除选择的文件后,不能再选择上次选择的相同的文件 在 firefox 浏览 ...
- JVM中内存的设置和分配(最大内存,总内存,剩余内存的区别)
1.设置分配的内存大小 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 说明后面是VM的参数,所以后面的 ...
- day01——python初始、变量、常量、注释、基础数据类型、输入、if
python的历史: 04年Django框架诞生了 内存回收机制是什么(面试题) python2:源码不统一,有重复的功能代码 python3:没有重复的功能代码 python是一个什么的编程语言 编 ...
- go编译运行说明
二 编译运行说明 1.1 编译 1)有了go源文件,通过编译器将其编译成机器可以识别的二进制码文件. 2)在该源文件目录下,通过 go build 对hello.go 文件进行编译.可以指定生成的可 ...
- ETCD服务
ETCD 简介 ETCD是一个开源的.分布式的键值对数据存储系统,由Go语言实现,用于存储key-value键值对,同时不仅仅是存储,主要用途是提供共享配置及服务发现,使用Raft一致性算法来管理高度 ...
- Go基础编程实践(三)—— 日期和时间
日期和时间 package main import ( "fmt" "time" ) func main() { // 获取当前时间 current := ti ...
- wildfly添加JNDI驱动配置
wildfly-9.0.1.Final/modules目录下新建com文件夹cd com && mkdir mysql && cd mysql && m ...
- 《JAVA高并发编程详解》-七种单例模式