Hadoop 2.0中的日志收集以及配置方法

Hadoop中的日志包含三个部分,Application Master产生的运行日志和Container的日志。

一、ApplicationMaster产生的作业运行日志

Application Master产生的日志信息详细记录了Map Reduce job的启动时间,运行时间,用了多少个Mapper,多少个Reducer,Counter等等信息。MapReduce作业中的Application Master是运行在container中的。

默认情况下,Application Master产生的日志信息保存在HDFS上的特定的路径下,由以下几个参数来决定。

yarn.app.mapreduce.am.staging-dir : 默认为/tmp/hadoop-yarn/staging

mapreduce.jobhistory.done-dir : 存放已经结束的MR job的日志,默认为${yarn.app.mapreduce.am.staging-dir}/history/done

mapreduce.jobhistory.intermediate-done-dir : 存放正在运行中的MR job的日志,默认为${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate

到达HDFS目录下查看后发现,每个MR job都包含两个文件,一个是.jobhist结尾的文件,一个conf.xml

打开一个jhist查看,前半部分是avsc文件,描述了数据文件的结构,例如包含了什么字段,每个字段的数据类型以及possible value.

后面的部分则是json格式的数据,描述了MapReduce Job的运行状态和日志信息。

打开conf.xml可以发现,这个xml文件中包含了这个MapReduce job的参数。

二、Container日志

Container日志存放在每个NodeManager的本地磁盘上,存放位置由参数 yarn.nodemanager.log-dirs 决定,默认是$HADOOP_HOME/logs/userlogs下。这里包含了每一个application的log.

每一个以application命名的文件夹下,包含三个container的文件夹,以0000001结尾的文件夹下的文件就是ApplicationMaster的运行日志。

每个container文件夹下都包含三个文件,syserr,sysout, syslog

三、日志聚集功能

因为container的运行日志保存在每个NodeManager的本地磁盘下,不方便管理,可以启用日志聚集功能,打开该功能后,container的日志会被上传到HDFS某个目录下,并将syserr,sysout和syslog合并成一个文件,可以通过jobhistory server来查看,在没有启用日志聚集的功能时,在jobhistory server的Web UI里是没办法查看某个Map或者Reduce的日志的。

并且用"yarn logs -applicationId xxxx" 命令尝试输出yarn的log,log是没办法显示的。

在每个NodeManager的yarn-site.xml中配置以下参数。

1.yarn.log-aggregation-enable

是否启用日志聚集功能,默认值为false

2.yarn.log-aggregation.retain-seconds

在HDFS上聚集的日志最多保存多长时间,默认值为-1,-1的意思是不删除?

3.yarn.log-aggregation.retain-check-interval-seconds

隔多长时间查看聚集的日志并删除已经超过时间的日志,默认值为-1。如果设置成0或者一个负数,则这个值会被计算成log保留时间的十分之一。

4.yarn.nodemanager.remote-app-log-dir

日志被转移到的HDFS路径,默认值为/tmp/logs

5.yarn.nodemanager.remote-app-log-dir-suffix

日志被转移到的HDFS路径的子目录,默认为logs, 所以默认情况下日志会被存放在${yarn.nodemanager.remote-app-log-dir}/${user}/logs下。

其他参数可以参考https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

接下来我们来验证一下,如果yarn.log-aggregation.retain-seconds设置成-1,也就是默认值,会不会进行日志聚集呢?

此时我在ResourceManager和NodeManager的yarn-site.xml都加入了以下的参数。

接下来重启yarn,并且跑一个MapReduce Job试试。

此时我们可以在jobhistory server中查看到这个job的log.

过十分钟左右再来查看,log还在,并且查看HDFS路径/tmp/logs/root/logs,所有的log文件都在此处。

参考文章:

https://blog.csdn.net/u011414200/article/details/50338073

原文地址:https://www.cnblogs.com/qingfei1994/p/Hadoop.html

时间: 2024-10-03 10:11:54

Hadoop 2.0中的日志收集以及配置方法的相关文章

在vue2.0中没有dev-server.js下配置方法<转>

这篇文章主要介绍了vue2.0在没有dev-server.js下的本地数据配置方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 问题描述: 在vue2.0的以上的版本,vue-cli的build的文件夹下没有dev-server.js文件,那怎么配置mock数据 Vue2.x在build下的webpack.dev.conf.js配置就行 //在const portfinder = require(‘portfinder')后添加 const express = require('

网站数据统计分析中的日志收集原理及其实现

> 网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析.百度统计 和 腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于javascript的.本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统. 1.数据收集原理分析 简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页.点击某按钮.将商品加入购物车等)及行为附加数据(如某下单行为产生的订单金额等).早期的网站统计往往只收

Hadoop 2.0中单点故障解决方案总结

项目构建 Hadoop 1.0内核主要由两个分支组成:MapReduce和HDFS,众所周知,这两个系统的设计缺陷是单点故障,即MR的JobTracker和HDFS的NameNode两个核心服务均存在单点问题,该问题在很长时间内没有解决,这使得Hadoop在相当长时间内仅适合离线存储和离线计算. 令人欣慰的是,这些问题在Hadoop 2.0中得到了非常完整的解决.Hadoop 2.0内核由三个分支组成,分别是HDFS.MapReduce和YARN,而Hadoop生态系统中的其他系统,比如HBas

Hadoop 2.0 中的资源管理框架 - YARN(Yet Another Resource Negotiator)

1. Hadoop 2.0 中的资源管理 http://dongxicheng.org/mapreduce-nextgen/hadoop-1-and-2-resource-manage/ Hadoop 2.0指的是版本为Apache Hadoop 0.23.x.2.x或者CDH4系列的Hadoop,内核主要由HDFS.MapReduce和YARN三个系统组成,其中,YARN是一个资源管理系统,负责集群资源管理和调度,MapReduce则是运行在YARN上离线处理框架,它与Hadoop 1.0中的

C# 2.0 中的新增功能03 匿名方法

连载目录    [已更新最新开发文章,点击查看详细] 在 2.0 之前的 C# 版本中,声明委托的唯一方式是使用命名方法. C# 2.0 引入匿名方法,在 C# 3.0 及更高版本中,Lambda 表达式取代匿名方法作为编写内联代码的首选方式. 但是,本主题中有关匿名方法的信息也适用于 Lambda 表达式. 在有一种情况下,匿名方法提供 Lambda 表达式中没有的功能. 使用匿名方法可省略参数列表. 这意味着匿名方法可转换为具有多种签名的委托. Lambda 表达式无法实现这一点. 有关 L

phpunit 生成三种日志文件的配置方法

#目录结构 windows bin目录下 ├── phpunit.phar ├── phpunit.cmd ├── phpunit.xml ├── build.xml ├── ArrTest.php └── tmp ├── logfile.json ├── logfile.tap └── logfile.xml #日志XML文件配置 新建文件 build.xml 放置在根目录 <logging> <log type="json" target="tmp/1o

Spark中的日志聚合的配置

1.介绍 Spark的日志聚合功能不是standalone模式独享的,是所有运行模式下都会存在的情况 默认情况下历史日志是保存到tmp文件夹中的 2.参考官网的知识点位置 3.修改spark-defaults.conf 4.修改env.sh 5.在HDFS上新建/spark-history bin/hdfs dfs -mkdir /spark-history 6.启动历史服务 sbin/start-history-server.sh 7.测试 webUI: http://192.168.187.

ASP.NET4.0中JavaScript脚本调用Web Service 方法

环境:VS2019  .net 4.0 framework 根据教材使用ScriptManager在JavaScript中调用Web service 时,失败.现将过程和解决方法记录如下: 1.定义Web Service using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace AjaxTest1 { /// <

tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)

1.目录结构 2.路由 3..控制器 4.模型写法 5.视图标签 6.数据库操作 7.表单验证 --------------------------- 1.目录结构 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─config.php 模块配置文件 │ │ ├─common.php 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型