欢迎光临散文网 会员登陆 & 注册

千锋教育大数据Hadoop全新升级版入门教程,零基础从安装搭建到集群调优

2023-07-20 22:55 作者:bili_76673074185  | 我要投稿
  1. 用户调用waitForCompletion方法来提交作业,并且每秒轮询作业的进度。内部封装了submit()方法,用于创建JobCommiter实例,并调用其submitJobInternal方法。

  2. JobCommiter实例向ResourceManager申请一个新的应用ID,用于标识MapReduce作业。同时,它会检查输出路径的情况,并计算输入数据的分片。
  3. 如果成功获取到ID,JobCommiter会将作业所需的资源(包括作业的JAR文件、配置文件和计算得到的输入数据分片元数据文件)上传到以ID命名的目录下的HDFS上。默认情况下,副本个数是10。
  4. 准备工作完成后,JobCommiter会通知ResourceManager调用submitApplication方法来提交作业。
  5. ResourceManager收到submitApplication方法的调用后,会通知Yarn调度器(Scheduler),调度器会分配一个容器,在节点管理器的管理下启动应用程序主进程(Application Master)。
  6. 应用程序主进程(Application Master)的主类是MRAppMaster,它的主要作用是初始化任务,并接收任务的进度和完成报告。
  7. 应用程序主进程从HDFS上获取资源,主要是数据分片(split)。然后,为每个数据分片创建Map任务和指定数量的Reduce任务,同时为任务分配唯一的任务ID。
  8. 应用程序主进程会向资源管理器请求容器,首先为Map任务申请容器,然后为Reduce任务申请容器。这个过程大约占整个作业运行时间的5%。
  9. 一旦资源管理器的调度器为任务分配了特定节点上的容器,应用程序主进程会与相应的节点管理器进行通信,以启动容器。
  10. 任务的运行是由YarnChild进程来执行的。在运行任务之前,需要将相关的资源进行本地化,包括JAR文件、配置文件和缓存文件。
  11. 然后,开始运行Map任务或Reduce任务。
  12. 当应用程序主进程收到最后一个任务已完成的通知后,会将作业状态设置为成功(success)。然后,作业会继续轮询,直到成功完成,然后通知客户端,并将统计信息输出到控制台。

这样,作业的提交过程就完成了。整个过程涉及到资源的申请、上传、分配和执行任务的过程,最终输出作业的结果和统计信息。

千锋教育大数据Hadoop全新升级版入门教程,零基础从安装搭建到集群调优的评论 (共 条)

分享到微博请遵守国家法律