`

Hadoop 2.0中作业日志收集原理以及配置方法

 
阅读更多

Hadoop 2.0提供了跟1.0类似的作业日志收集组件,从一定程度上可认为直接重用了1.0的代码模块,考虑到YARN已经变为通用资源管理平台,因此,提供一个通用的日志收集模块势在必行,由于目前通用日志收集模块正在开发中(可参考“YARN-321”),本文仅介绍MRv2(MapReduce On YARN)自带的日志收集模块,包括工作原理以及配置方法。

在Hadoop 2.0中,每个作业日志包含两部分,作业运行日志和任务运行日志,作业运行由MRAppMaster(MapReduce作业的ApplicationMaster)产生,详细记录了作业启动时间、运行时间,每个任务启动时间、运行时间、Counter值等信息,与Hadoop 1.0中的JobHistory日志是基本一致。MapReduce作业的ApplicationMaster也运行在Container中,且是编号为000001的Container,比如container_1385051297072_0001_01_000001,它自身可认为是一个特殊的task,因此,也有自己的运行日志,该日志与Map Task和Reduce Task类似,但并不是前面介绍的“作业运行日志”。

ApplicationMaster产生的作业运行日志举例如下,日志采用apache avro(作为日志存储格式是Hadoop 2.0唯一使用到Avro的地方)工具,以json的格式保存:

{“type”:”JOB_SUBMITTED”,”event”:{“org.apache.hadoop.mapreduce.jobhistory.JobSubmitted”:

{“jobid”:”job_1385051297072_0002″,”jobName”:”QuasiMonteCarlo”,”userName”:”yarn”, “submitTime”:1385393834983,”jobConfPath”:

“hdfs://hadoop-test/tmp/hadoop-yarn/staging/yarn/.staging/job_1385051297072_0002/job.xml”,”acls”:

{},”jobQueueName”:”default”,”workflowId”:”",”workflowName”:”",”workflowNodeName”:”",

“workflowAdjacencies”:”",”workflowTags”:”"}}}

{“type”:”JOB_INITED”,”event”:{“org.apache.hadoop.mapreduce.jobhistory.JobInited”:

{“jobid”:”job_1385051297072_0002″,”launchTime”:1385393974505,”totalMaps”:8,

“totalReduces”:1,”jobStatus”:”INITED”,”uberized”:false}}}

{“type”:”JOB_INFO_CHANGED”,”event”:{“org.apache.hadoop.mapreduce.jobhistory.JobInfoChange”:

{“jobid”:”job_1385051297072_0002″,”submitTime”:1385393834983,”launchTime”:1385393974505}}}

作业运行日志产生过程如下

步骤1:ResourceManager启动作业的ApplicationMaster,ApplicationMaster运行过程中,将日志写到${yarn.app.mapreduce.am.staging-dir}/yarn/.staging/job_XXXXX_XXX/下,其中参数yarn.app.mapreduce.am.staging-dir 的默认值是/tmp/hadoop-yarn/staging,该目录下将存在3个文件,分别是以“.jhist”、“.summary”和“.xml”结尾的文件,分别表示作业运行日志、作业概要信息和作业配置属性,其中,作业概要信息只有一句话,举例如下:

jobId=job_1385051297072_0002,submitTime=1385393834983,launchTime=1385393974505,

firstMapTaskLaunchTime=1385393976706,firstReduceTaskLaunchTime=1385393982581,

finishTime=1385393985417,resourcesPerMap=1024,resourcesPerReduce=1024,

numMaps=8,numReduces=1,user=yarn,queue=default,status=SUCCEEDED,

mapSlotSeconds=47,reduceSlotSeconds=5,jobName=QuasiMonteCarlo

步骤2:所有任务运行完成后,意味着,该作业运行完成,此时ApplicationMaster将三个文件拷贝到${ mapreduce.jobhistory.intermediate-done-dir}/${username}目录下,拷贝后的文件名后面添加”_tmp”,其中mapreduce.jobhistory.intermediate-done-dir默认值是${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate

步骤3:ApplicationMaster将拷贝完成的三个文件重新命名成“.jhist”、“.summary”和“.xml”结尾的文件(去掉“_tmp”)

步骤4:周期性扫描线程定期将done_intermediate的日志文件转移到done目录(通过参数mapreduce.jobhistory.done-dir配置,默认值为${yarn.app.mapreduce.am.staging-dir}/history/done)下,同时删除“.summary”文件(该文件中的信息,.jhist文件中都有)。

步骤5:ApplicationMaster移除

${yarn.app.mapreduce.am.staging-dir}/yarn/.staging/job_XXXXX_XXX/目录

默认情况下,任务运行日志产只会存放在各NodeManager的本地磁盘上,你可以打开日志聚集功能,以便让任务将运行日志推送到HDFS上,以便集中管理和分析。

默认情况下,NodeManager将日志保存到yarn.nodemanager.log-dirs下,,该属性缺省值为${yarn.log.dir}/userlogs,也就是Hadoop安装目录下的logs/userlogs目录中,通常为了分摊磁盘负载,我们会为该参数设置多个路径,此外,需要注意的是,ApplicationMaster的自身的日志也存放在该路目下,因为它也运行在Container之中,是一个特殊的task。举例如下,其中,最后一个是某个作业的ApplicationMaster日志(编号是000001)。

yarn@YARN-001:/opt/yarn/yarn-client$ ls ../yarn/logs/userlogs/*

../yarn/logs/userlogs/application_1384428704524_0003:

container_1384428704524_0003_01_000004

../yarn/logs/userlogs/application_1384428704524_0008:

container_1384428704524_0008_01_000003

../yarn/logs/userlogs/application_1384428704524_0012:

container_1384428704524_0012_01_000001

将作业和任务日志存放在各个节点上不便于统一管理和分析,为此,我们可以启用日志聚集功能。打开该功能后,各个任务运行完成后,会将生成的日志推送到HDFS的一个目录下(之前的并不会立即删除,在HDFS上,每个任务产生的三个文件,即syslog、stderr和stdout将合并一个文件,并通过索引记录各自位置),配置方法可参考文章:“Hadoop YARN配置参数剖析(2)—权限与日志聚集相关参数”。

接下来,讲一下MapReduce的JobHistory Server,这是一个独立的服务,可通过web UI展示历史作业日志,之所以将其独立出来,是为了减轻ResourceManager负担。通常可以启动在一台独立的机器上,你需在mapred-site.xml中对其进行配置,并使用“sbin/mr-jobhistory-daemon.sh start jobhistoryserver”命令启动它。JobHistory Server将会分析作业运行日志,并展示作业的启动时间、结束时间、各个任务的运行时间,各种Counter数据等,并产生一个指向作业和任务日志的链接。

最后,介绍一下mapred-site.xml和yarn-site.xml这两个配置文件的作用。Yarn-site.xml是YARN相关的配置文件,客户端、ResourceManager和NodeManager需要改配置文件,为了简单,可让这三类节点上的该文件是一致的。Mapred-site.xml是MapReduce特有的配置文件,在YARN中,mapreduce已经变成了一个客户端编程库,因此只有客户端和jobhistory server需要该配置文件,其他节点,比如resourceManager和NodeManager不需要,除非你们也把这些节点作为客户端提供给用户使用,另外,一定要让客户端和jobhistory server上的mapres-site.xml一致。

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-jobhistory-log/

作者:Dong,作者介绍:http://dongxicheng.org/about/

本博客的文章集合:

分享到:
评论

相关推荐

    Hadoop2.0开发环境搭建

    涉及到了Hadoop2.0、Hbase、Sqoop、Flume、Hive、Zookeeper的具体环境搭建

    Hadoop 2.0基本架构和发展趋势

    YARN是Hadoop 2.0中的资源管理系统,它的设计目的是将Hadoop从单一的MapReduce计算框架转变为一个多租户的集群管理平台,能够同时支持多种计算框架,如MapReduce、Spark、Storm等。YARN的核心概念包括...

    hadoop2.0安装手册

    hadoop 2.0 详细安装手册。hadoop 2.0 详细安装手册。

    Hadoop 2.0安装部署方法

    此外,搭建过程中还需注意JDK的安装,以及Hadoop各个版本对于JDK版本的要求。 四、发行版选择 在选择Hadoop发行版时,有多种选择,包括Apache Hadoop(开源基础版本)、Hortonworks的HDP(Hortonworks Data ...

    Hadoop2.0部署文档

    在Hadoop 2.0中,NameNode的HA主要通过Active/Standby模式实现,即一个NameNode处于活动状态,另一个处于备用状态。配置包括: - 配置Zookeeper故障转移(ZKFailoverController) - 设置NameNode共享编辑日志...

    实战Hadoop2.0 PPT

    2. **YARN(Yet Another Resource Negotiator)**:YARN是Hadoop 2.0中的核心组件,负责集群资源管理和任务调度。5-YARN.pptx可能会涵盖YARN的架构、ResourceManager、NodeManager、ApplicationMaster的角色,以及...

    Hadoop2.0安装详细步骤

    本文是详细的Hadoop2.0安装方法步骤

    大数据系列-Hadoop 2.0

    在Hadoop 2.0中,HDFS引入了NameNode HA(High Availability)和 Federation,增强了系统的可用性和可扩展性。 1. NameNode HA:通过引入两个活动的NameNode,解决了单点故障问题。当一个NameNode出现故障时,另一...

    Hadoop安装手册_Hadoop2.0.pdf

    hadoop2.0版本安装手册,包含hadoop、hive、hbase、mahout、sqoop、spark、storm、整个体系的安装配置

    hadoop 2.0

    - **MapReduce**:作为第一代的分布式数据处理模型,在Hadoop 2.0中被优化为运行在YARN之上的一个应用,从而实现了与更多计算框架的共存。 - **YARN**:是Hadoop 2.0的资源管理系统,负责整个集群的资源管理和调度,...

    云计算第三版精品课程配套PPT课件含习题(29页)第6章 Hadoop 2.0 大家族(三).pptx

    Oozie 是一个工作流调度系统,用来管理和协调Hadoop生态系统中的工作流任务,如MapReduce作业、Pig脚本、Hive查询等。它可以创建、调度和监控工作流程,确保任务按照预设的顺序和条件正确执行。 6.7 Flume Flume 是...

    Hadoop 2.0部署配置文件示例.zip

    下面我们将详细探讨Hadoop 2.0的主要特点以及配置文件的相关知识。 一、Hadoop 2.0的主要特点 1. YARN(Yet Another Resource Negotiator):Hadoop 2.0引入了YARN作为新的资源管理框架,取代了原有的JobTracker,...

    Hadoop2.0架构设计与原理.ppt

    Hadoop2.0架构设计与原理.ppt

    实战Hadoop 2.0:从云计算到大数据(第二版)

    实战Hadoop 2.0:从云计算到大数据(第二版)

    《Hadoop大数据开发实战》教学教案—06Hadoop2.0新特性.pdf

    Hadoop2.0中,MapReduce被重构为两个独立的组件:ResourceManager(RM)负责资源调度,TaskTracker被拆分为ApplicationMaster(AM)和NodeManager(NM)。这种分离使得资源管理更加高效,同时也支持了更多种类的计算...

    云计算第三版精品课程配套PPT课件含习题(30页)第5章 Hadoop 2.0 主流开源云架构(四).pptx

    3. **Hadoop 2.0 部署**:讲解如何在不同的硬件和网络环境中安装、配置和管理Hadoop 2.0集群,包括单机模式、伪分布式和完全分布式模式。 4. **Hadoop 2.0 体系架构**: - **公共组件 Common**:这部分涉及Hadoop...

    Hadoop2.0分布式HA环境部署

    在Hadoop2.0 HA环境中,有两个或更多的NameNode实例运行在同一集群中,其中一个是活跃状态(Active),负责处理客户端请求;另一个处于备用状态(Standby),准备随时接管活跃节点的工作。这种模式依赖于一组...

    云计算第三版精品课程配套PPT课件含习题(29页)第6章 Hadoop 2.0 大家族(三).rar

    习题可能涵盖Hadoop 2.0组件的工作原理、配置、优化策略以及实际问题的解决方法。 总的来说,这个压缩包提供了一个全面的Hadoop 2.0学习路径,涵盖了从基础概念到高级应用的多个方面,对于深入理解和掌握Hadoop生态...

    Hadoop2.0+Kerberos配置

    以下是对标题“Hadoop2.0+Kerberos配置”和描述“Hadoop的安全认证机制,在hadoop的集群中实现对服务器与服务器之间的安全保障”中涉及知识点的详细说明: 1. Hadoop2.0安全机制:Hadoop2.0版本对安全性进行了增强...

    云计算第三版精品课程配套PPT课件含习题(33页)第5章 Hadoop 2.0 主流开源云架构(五).pptx

    本课程内容包括大数据与云计算的基础理论、Google云计算原理、Amazon AWS详解、微软Windows Azure的介绍,以及Hadoop 2.0的深入探讨。此外,还涉及虚拟化技术如OpenStack,云计算数据中心的运作,以及中国云计算技术...

Global site tag (gtag.js) - Google Analytics