昨日阅读3小时,总计91.5 小时
YARN对内存资源和CPU资源采取了不同的隔离方案
前者限制性,提供两种可选方案(线程监控方案、轻量级资源隔离技术Cgroups)默认使用前者。
后者弹性资源,其大小不会直接影响应用程序的死活。是一种更加严格、有效的资源限制方法。
2.6.0后,YARN引入了ContainerExecutor:DockerContainerExcecutor DCE,使得NodeManager能够将YARN Container直接运行在Docker Container中。为Perl/Python/Java提供隔离的运行环境。
YARN生态环境:已变成了一个数据操作系统(Data Operating System)
很多应用程序或服务不再基于传统的OS,如Linux开发和部署,而是基于YARN,即新的技术框架或者应用程序脱离开YARN将不再能够单独运行。
如DAG(Directed Acyclic Graph)计算框架Tez和Spark
Apache Slider:不经过任何代码修改的情况下,可将现有服务,直接部署到YARN上(Slider内置了对Storm和HBase的支持)
Apache Twill:提供了一套简化版编程模型,方便用户在YARN上开发、部署、管理应用程序。
支持在YARN上的计算框架和服务主要有:
MapReduce:一个非常经典的离线计算框架,在MRv1中,MapReduce应用程序需要运行在由JobTracker和TaskTracker组成的运行时环境中。YARN中,不再有JobTracker和TaskTracker类似的服务组件,取而代之是ApplicationMaster,它只负责应用程序相关的管理,比如任务切分和调度、任务监控和容错等,而资源管理和调度交给YARN完成。
Tez:Hortonworks开源的DAG计算框架,在MapReduce基础上扩展而来的。重用了Mapeduce大量代码,仅支持运行在YARN上,不可单独运行,已被广泛应用于Hive、Pig等引擎中。
Storm:流式实时计算框架
Spark:通用DAG内存计算框架(尤其适合数据挖掘、机器学习),比MapReduce更高效易用
HBase:
Giraph:开源图算法库
OpenMPI:非常经典的高性能并行编程接口。
资源管理系统Mesos:诞生于UC Berkeley的一个研究项目
它的设计动机:解决编程模型和计算框架在多样化环境下,不同框架间的资源隔离和共享问题。
Twitter、国内的豆瓣,都是使用Mesos管理集群资源。
由四个部分组成:Mesos Master 、Mesos Slave、Framework Scheduler、Framework Executor
资源分配策略:资源拒绝、资源过滤、资源回收
资源管理系统架构演化:(集中式架构、双层调度架构、共享状态架构)