关于大数据中的yarn资源管理器你了解清楚了吗?

       数据的增长似乎超越了所有人的认知,互联网近几年所产生的数据量都大大的超越了几千年来人类数据积累的综合,好不夸张的说,未来数据将成为一切的驱动力。大数据的魅力如今在各个领域得以展现,而更多的人也纷纷的投入到学习大数据的进程中,那么关于大数据中的yarn就成为求学者不得不重视的一个学习重点。


       关于大数据中yarn是什么,我们可以做一个简单的了解,首先,yarn是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。更加便捷的操作方式和强大的处理能力,都让yarn成为求学者必学的一个项目。

       对于yarn的概念,相信不用解释太多,毕竟大家都有着自己的认知系统。下面,我们不妨来了解一下yarn的作业运用,看看其是通过哪些步骤完成的。

       第一、作业提交

       client 调用job.waitForCompletion方法,向整个集群提交MapReduce作业。新的作业ID(应用ID)由资源管理器分配。作业的client核实作业的输出, 计算输入的split,将作业的资源(包括Jar包,配置文件,split信息)拷贝给HDFS。最后, 通过调用资源管理器的submitApplication()来提交作业。

              第二、作业初始化

       当资源管理器收到submitApplciation()的请求时, 就将该请求发给调度器(scheduler),调度器分配container,然后资源管理器在该container内启动应用管理器进程,由节点管理器监控。MapReduce作业的应用管理器是一个主类为MRAppMasterJava应用。其通过创造一些bookkeeping对象来监控作业的进度, 得到任务的进度和完成报告。然后其通过分布式文件系统得到由客户端计算好的输入split。然后为每个输入split创建一个map任务,根据mapreduce.job.reduces创建reduce任务对象。

       第三、任务分配

       如果作业很小,应用管理器会选择在其自己的JVM中运行任务。如果不是小作业, 那么应用管理器向资源管理器请求container来运行所有的mapreduce任务。这些请求是通过心跳来传输的, 包括每个map任务的数据位置,比如存放输入split的主机名和机架(rack)调度器利用这些信息来调度任务,尽量将任务分配给存储数据的节点,或者分配给和存放输入split的节点相同机架的节点。

       第四、任务运行

       当一个任务由资源管理器的调度器分配给一个container后,应用管理器通过联系节点管理器来启动container。任务由一个主类为YarnChildJava应用执行。在运行任务之前首先本地化任务需要的资源, 比如作业配置,JAR文件,以及分布式缓存的所有文件。最后,运行mapreduce任务。YarnChild运行在一个专用的JVM, 但是YARN不支持JVM重用。

       第五、进度和状态更新

       YARN中的任务将其进度和状态(包括counter)返回给应用管理器,客户端每秒(通过mapreduce.client.progressmonitor.pollinterval设置)向应用管理器请求进度更新, 展示给用户。

       第六、作业完成

       除了向应用管理器请求作业进度外,客户端每5分钟都会通过调用waitForCompletion()来检查作业是否完成。时间间隔可以通过mapreduce.client.completion.pollinterval来设置. 作业完成之后,应用管理器和container会清理工作状态,OutputCommiter的作业清理方法也会被调用. 作业的信息会被作业历史服务器存储以备之后用户核查。

       关于大数据中yarn的分析就简单的为大家谈到这里,大数据是一个实操的课程项目,只是淡出的看资料、看分析,对于自身的成才意义并不大,所以,作为求学者,建议你还是能够将这些知识都融入到现实的实操当中,只有不断的去实操、去验证,才能够让每一个求学者真正的掌握大数据的相关知识。

本文转自:海牛学院

猜你喜欢

转载自blog.csdn.net/hainiubuluo/article/details/80885166