Yarn的简单介绍
我们知道在离线大数据处理领域中,hadoop是目前无可厚非的处理架构,到目前为止hadoop已经有三个大版本,每个版本下都有架构方面的调整。
在hadoop1.0中有一些弊端,比如hdfs元数据信息保存的单节点故障,并且任务计算框架只能使用mapreduce,而且造成了任务管理器的压力过大,因此在hadoop2.0中加入了yarn资源统一管理的机制,不仅解决了元数据单节点故障问题(双namenode)而且实现了元数据的实时热备(共享机制JournalNode),在hdfs和mr之间加入了yarn,统一协调资源。
在本文中只介绍yarn的运行原理,其他有关知识可以查询相关文档,这里就不多做介绍。
Yarn的运行原理图(此处为截图)
原理介绍
1. 客户端执行run方法,启动任务,启动过程中会检测相应执行权限请求路径等,若检测失败,则终止后续的执行
2. 第一步检测通过后,向resourcemanager发送请求,并返回任务id,以及任务在hdfs的存放路劲
3. 客户端接收到响应信息后,根据提交路径,将job任务打包上传到hdfs(共享文件系统)
4. 客户端再次向resourcemanager提交job任务(application)
5. Resourcemanager根据任务提交由资源调度器申请一个资源容器container,并由applicationmanager选择一台nodemanager(节点的资源管理器),启动一个与申请大小相同的container,并开启一个applicationmaster(任务的子实例协调管理者)
6. Appalicationmaster进行任务的初始化
7. 从resourcemanager获取执行任务在hdfs的位置,并根据任务信息计算mapreduce的数量
8. 根据初始化和运算结果,Appalicationmaster再根据mapreduce的任务大小依次到resourcemanager申请task(mapreduce)任务需要的container
9. Applicationmaster申请到container后再次选择一个nodemanager,并发送启动container的指令
10. Nodemanager收到指令后,启动container并从任务所在的hdfs路劲中获取执行的mapreduce任务
11. 启动jvm虚拟机来执行获取的mapreduce任务
注意:applicationmaster将监听每一个nodemanager执行的情况并随时汇报给resourcemanager,知道最后任务执行完成,将回收所有的资源,如果发现有任务执行失败,则由applicationmaster来协调,减轻了resourcemanager的负担,如果applicationmaster在运行过程中出问题,resourcemanager没有接收心跳后,会再在所有nodemanager节点中选择一个节点来启动applicationmaster来继续工作。
以上就是hadoop2.0中yarn的运行原理,大家相互学习——-成长从博客开始
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/192652.html