继《Hadoop2.6.0版本MapReudce示例之WordCount(一)》之后,我们继续看MapReduce的WordCount示例,看看如何监控作业运行或查看历史记录,以及作业运行时的文件目录及列表。
1、监控作业运行或查看历史记录
在WordCount的输出内容中,有这么一句:The url to track the job: http://server2:8088/proxy/application_1459913635503_0004/,这个是追踪作业运行的意思,登录后,可以查看Job整体情况、配置信息Configuration、Map Tasks情况、Reduce Tasks情况、Job计数器Counters、作业历史JobHistory等情况,分别如下图所示:
1.1、Job整体情况
Job整体情况包括作业名、提交用户名、作业队列、作业状态、提交时间、开始时间、完成时间、耗时、平均Map耗时、平均Shuffle耗时、平均合并耗时、平均聚合耗时、Map、Reduce任务各自总数及完成数、Map、Reduce任务尝试运行各自总数、失败数、杀死数、成功数等内容。
1.2、配置信息Configuration
1.3、Map Tasks情况
Map Tasks情况包括Map Task的Task名称name、Task状态state、Task整体开始时间Start Time、Task整体完成时间Finish Time、Task整体耗时Elapsed Time、成功运行尝试Successful Attempt开始时间Start Time、成功运行尝试Successful Attempt完成时间Finish Time、成功运行尝试Successful Attempt耗时Elapsed Time等。
我们知道,MapReduce的Task的每次尝试运行,称为Task Attempt,并且MapReduce有推测执行原理,对于拖后腿的Map Task,会尝试同时运行多个任务运行尝试Attempt,哪个先完成就用哪个,并且,即便没有推测执行原理,任务也很有可能运行失败,为了确保高容错性,对于失败任务还是需要多次尝试运行直到成功的。
1.4、Reduce Tasks情况
Reduce Tasks情况
1.5、Job计数器Counters
1.6、作业历史JobHistory
2、作业运行时的文件目录及列表
MapReduce的作业Job在运行时,会将配置文件、Jar等上传至HDFS指定工作目录,下面我们看下这个工作目录的情况。针对在Yarn上运行的MapReduce作业,Job运行的指定工作目录这样被定义的:
参数yarn.app.mapreduce.am.staging-dir指定的路径/作业所属用户user/.staging/作业ID
参数yarn.app.mapreduce.am.staging-dir未配置的话,默认为/tmp/hadoop-yarn/staging;通过上面的作业查看中配置信息得知,本例中参数配置值为/user,如图所示:
而作业所属用户取自作业参数mapreduce.job.user.name,本例中参数配置值为hdfs,如图所示:
最后一个作业ID为job_1459913635503_0005(请原谅,不是本例的JobId,因为之前没有专门截图,所以又运行了一次示例,产生了一个新的JobId)
所以,完整的作业工作目录为/user/hdfs/.staging/job_1459913635503_0005,查看路径下的文件列表,如图所示:
其中,job.jar是执行job任务的那个jar文件,job.split是分片信息,job.splitmetainfo是分片元数据信息,job.xml是配置信息。