设为首页 加入收藏

TOP

yarn-client、yarn-cluster 的区别
2019-03-21 01:28:40 】 浏览:61
Tags:yarn-client yarn-cluster 区别

Spark on yarn有分为两种模式yarn-cluster和yarn-client

Spark支持可插拔的集群管理模式(Standalone、Mesos以及YARN ),集群管理负责启动executor进程,编写Spark application 的人根本不需要知道Spark用的是什么集群管理。

Spark支持的三种集群模式,这三种集群模式都由两个组件组成:master和slave。Master服务(YARN ResourceManager,Mesos master和Spark standalone master)决定哪些application可以运行,什么时候运行以及哪里去运行。而slave服务( YARN NodeManager, Mesos slave和Spark standalone slave)实际上运行executor进程。

当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器(container)运行。Spark可以使得多个Tasks在同一个容器(container)里面运行。注意这里和Hadoop的MapReduce作业不一样,MapReduce作业为每个Task开启不同的JVM来运行

yarn-cluster适用于生产环境;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出。


 在我们介绍yarn-cluster和yarn-client的深层次的区别之前,我们先明白一个概念:Application Master。

在YARN中,每个Application实例都有一个Application Master进程,它是Application启动的第一个容器。它负责和ResourceManager打交道,并请求资源。获取资源之后告诉NodeManager为其启动container。

从深层次的含义讲,yarn-cluster和yarn-client模式的区别其实就是Application Master进程的区别。yarn-cluster模式下,driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行。然而yarn-cluster模式不适合运行交互类型的作业。而yarn-client模式下,Application Master仅仅向YARN请求executor,client会和请求的container通信来调度他们工作,也就是说Client不能离开。看下下面的两幅图应该会明白(上图是yarn-cluster模式,下图是yarn-client模式):


这里写图片描述


这里写图片描述


总结来说:yarn-client 与yarn-cluster的区别就在于driver所在的位置,yarn-client driver运行在client端 yarn-cluster driver 运行在Application Manager内 client模式适合开发 cluster模式 适合正式环境

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Learning Spark (Python版) 学习.. 下一篇spark IDE:   System memory..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目