hadoop(10)--MR运行模式以及Yarn的调度流程

首先开门见山,说明一下MR的l两种种运行模式
1,在本地运行模式
①在windows中,intellij idea或者eclipse中直接运行,文件存储可以是本地也可以是HDFS
②在linux中,运行eclipse,文件存储可以是本地也可以是HDFS
2,集群运行模式
①,在windows中将MR程序编写好,运行main提交到集群中,交由yarn去调度运行,这一种,需要修改好多信息,因为平台不一样,需要修改如下:
要在windows中解压一份hadoop安装包
配置HADOOP_HOME和Path
重新编译YarnRunner
②,在linux中运行编写好的MR程序,提交到集群中
③,编好MR程序,打包位jar,命令运行
hadoop jar **.jar *******.java
为什么要说一下运行模式呢?为了写MR程序在本地测试了通过之后,直接在集群上用命令运行,这样就会提高效率
OK!
接下来先简单的介绍一下Yarn的调度流程,用画图的方式,先大概的描述一下整个调度流程,明天分析源码

《hadoop(10)--MR运行模式以及Yarn的调度流程》 image.png

看一看进程的变化
运行

《hadoop(10)--MR运行模式以及Yarn的调度流程》 image.png

jps观察

[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3400 Jps
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3478 Jps
3434 RunJar
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3525 Jps
3434 RunJar
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
3434 RunJar
2236 DataNode
2141 NameNode
3663 Jps
[songlj@my01 ~]$ jps
3680 Jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
3434 RunJar
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
3751 Jps
3434 RunJar
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3811 Jps
3652 MRAppMaster
3801 YarnChild
3434 RunJar
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
3831 Jps
3801 YarnChild
3434 RunJar
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jsp
-bash: jsp: command not found
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
3913 Jps
3434 RunJar
2236 DataNode
2141 NameNode
3903 YarnChild
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
3434 RunJar
2236 DataNode
2141 NameNode
3934 Jps
3903 YarnChild
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
3992 Jps
3434 RunJar
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
4004 Jps
2236 DataNode
2141 NameNode
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
3652 MRAppMaster
2236 DataNode
2141 NameNode
4015 Jps
[songlj@my01 ~]$ jps
2561 ResourceManager
2417 SecondaryNameNode
2659 NodeManager
2236 DataNode
2141 NameNode
4030 Jps
[songlj@my01 ~]$ 

从上面就可以看出
RunJar
MRAppMaster
YarnChild
这三个进程的出现以及消失,就可以看出Yarn在资源调度的时候产生的进程以及过程
好了,今天就分享到这里,明天看Yarn调度过程的源码
望指正,不吝赐教!

点赞