Yarn设计的初衷就是为了在同一套集群上面跑不同的应用框架,
不同的分布式框架各有优势,针对的业务场景是不一样的。MapReduce能更好的处理大批量的ETL业务而Spark则相
对更为专注于Machine Learning。对于公司而言,这些业务如果能在同一集群上面跑则能有效降低成本。要允许不同
框架同时运行在同一集群,最首要解决的问题就是如何分配资源。在没有Yarn的时候,一个比较简单的做法是,假设
集群有100台机器,我们将50台机器分配给Spark,将另外50台分配给MapReduce任务。这样做似乎并没什么不妥。
但是假设每天我们跑MapReduce的任务时间只有1小时,其他大部分时间都是在跑Spark,那么一天里面有23小时,
50台机器都处于空闲状态,而Spark的机器则很可能有大量的作业在排队。这显然不是一个很有效利用集群的方法,他
就是一个资源管理工具。在全局范围里面,他知道集群有哪些空闲的机器。当用户提交作业时,Yarn只需要分配用户
要求的资源,然后由作业自身去调用,配置和管理相应的运算框架。
yarn就是一个分布式的操作系统,逻辑上他是一个资源池,然后分给你,这个资源分配跟操作系统是一样的概念呀,
但是物理上,他是集群组合起来的。
他不仅提供了资源调度框架 其实更重要的是 给这些计算框架使用hdfs 分布式计算和分布式存储的重要桥梁
YARN,是一种资源管理器,负责集群资源的管理和调度,它可以实现对集群所有cpu,内存,文件系统,磁盘等各种
他不仅提供了资源调度框架 其实更重要的是 给这些计算框架使用hdfs 分布式计算和分布式存储的重要桥梁
YARN,是一种资源管理器,负责集群资源的管理和调度,它可以实现对集群所有cpu,内存,文件系统,磁盘等各种
资源的分配。而MapReduce,Spark,Storm都是计算框架,运行于YARN之上的。所以也有Spark on Yarn,Storm
on Yarn这些说法。同样的资源调度框架,还有mesos,omega等。
来源:知乎
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。