yarn是大数据中十分重要的一个组件,对于资源的调度和任务调度有着不可或缺的作用。如果难以理解可以类比一下通过zookeeper去实现高可用,今天,我们来具体的聊一聊yarn的资源调度和任务调度的方式。
名词提要与介绍
1)Application:基于spark的应用程序,包含了Driver程序和集群上的Executor
2)Executor:是在一个WorkNode上为某应用启动的一个进程,该进程负责运行任务,并且将数据存储在内存或者磁盘上。每一个应用都有各自独立的Executors
3)Task:是一个线程对象,是被送到某个Executor上的执行单元
4)DriverProgram:运行main函数并新建SparkContext的程序
5)ClusterManager:在集群上获取资源的外部服务
6)WorkerNode:集群中任何可以运行应用代码的节点
7)Job:包含很多任务的并行计算的task
8)Stage:一个Stage是一组可以并行计算的task。一个stage会被拆分成很多组任务,魅族任务被称为stage
好的,主角们都出场了,下面我来介绍一下具体的过程吧,他们之间的联系我会放在最后,供大家参考
一、资源调度
Yarn中的资源调度主要分为两种模式,分别为yarn-client模式和yarn-cluster模式,这两个模式在答题构架上是几乎相同的,区别仅仅是Driver端的位置,所以我们先来介绍yarn-client模式,等会儿我们稍微变动下介绍yarn-cl