热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

启动流程_HadoopYARN启动流程

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Hadoop-YARN启动流程相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Hadoop - YARN 启动流程相关的知识,希望对你有一定的参考价值。




   一  YARN的启动流程          


                                                     技术分享







                                                                               YARN 启动流程





   


  1.提交应用及其使用到的资源


    用户向YARN中(RM)提交应用程序,当中包含ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。client将应用程序所需的文件资源(外部字典、JAR包、二进制文件等)提交到
HDFS.





  2.启动ApplicationMaster


      ResourceManager为该应用程序分配第一个Container。并与相应的NodeManager通信。要求它在这个Container中启动应用程序的ApplicationMaster。

ApplicationMaster与ResouceManager通信,以请求和获取资源。

ApplicationMaster获取到资源后,与相应的NodeManager通信以启动任务。

假设该应用程序第一次在给节点上启动任务,则NodeManager首先从HDFS上下载文件缓存到本地,然后启动该任务。






     注:分布式缓存并非将文件缓存到集群中各个结点的内存中,而是将文件换到各个结点的磁盘上,以便运行任务时候直接从本地磁盘上读取文件。





  3.注冊应用


   ApplicationMaster首先向ResourceManager注冊,表明自己启动成功。这样用户能够直接通过ResourceManage查看应用程序的执行状态。然后它将为各个任务申请资源,并监控它的执行状态,直到执行结束,即反复步骤4~7。





  4.为任务申请资源


   ApplicationMaster採用轮询的方式通过RPC协议向ResourceManager申请和领取资源。





   5.与NM通信启动各个任务


    一旦ApplicationMaster申请到资源后。ApplicationMaster就会将启动命令交给NodeManager,要求它启动任务。启动命令里包括了一些信息使得Container能够与Application Master进行通信。




  6.NM启动任务


     NodeManager为任务设置好执行环境(包含环境变量、JAR包、二进制程序等)后。将任务启动命令写到一个脚本中,并通过执行该脚本启动任务(Container)。




  7.运行任务


     在Container内执行用户提交的代码,各个Container通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的执行状态,从而能够在任务失败时又一次启动任务。





  8.任务状态查询


      在应用程序执行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前执行状态。




  9.执行完成


     应用程序执行完毕后,ApplicationMaster向ResourceManager注销并关闭自己。





二 AM与RM的具体交互





     1.用户向YARN ResourceManager提交应用程序,RM收到提交申请后。先向资源调度器申请用以启动AM
的资源,待申请到资源后,再由ApplicationMasterLauncher与相应的NodeManager通信,从而启动应用程序的ApplicationMaster.


     2.ApplicationMaster启动完毕后,ApplicationMasterLaucher会通过事件的形式,将刚刚启动的Application Master注冊到AMLiveMonitor,以启动心跳监控。


     3.ApplicationMaster启动后,先向ApplicatinMaterService注冊。并将自己所在host、port号等信息汇报给它。



     4.AM执行过程中,周期性地向ApplicationMaserService回报心跳信息(信息中包括想要申请的资源描写叙述)。


     5. ApplicationMasterService每次收到ApplicationMaster心跳信息好后,将通知AMLivelinessMonitor更新应用程序的最新回报心跳的时间。


     6.应用程序执行完毕后,AM向AMService发送请求,注销自己。


     7.AMService收到注销请求后,标注应用程序执行状态完毕。同一时候通知AMLivelinessMonitor移除对它的心跳监控。





三 小结





      当用户向YARN中提交一个应用程序后,YARN将分两个阶段执行该应用程序:第一个阶段是启动

ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个执行过程。直到运

行完毕






















推荐阅读
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Hadoop 源码学习笔记(4)Hdfs 数据读写流程分析
    Hdfs的数据模型在对读写流程进行分析之前,我们需要先对Hdfs的数据模型有一个简单的认知。数据模型如上图所示,在NameNode中有一个唯一的FSDirectory类负责维护文件 ... [详细]
  • 如何在mysqlshell命令中执行sql命令行本文介绍MySQL8.0shell子模块Util的两个导入特性importTableimport_table(JS和python版本 ... [详细]
  • 伸缩性|发生_分布式文件系统设计,该从哪些方面考虑?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了分布式文件系统设计,该从哪些方面考虑?相关的知识,希望对你有一定的参考价值。点击上方关注“ ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • MapReduce工作流程最详细解释
    MapReduce是我们再进行离线大数据处理的时候经常要使用的计算模型,MapReduce的计算过程被封装的很好,我们只用使用Map和Reduce函数,所以对其整体的计算过程不是太 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有