深入剖析HADOOP程序日志

前提

本文来自于 博客园 逖靖寒的世界 http://gpcuster.cnblogs.com

了解log4j的使用

正文

本文来自于 博客园 逖靖寒的世界 http://gpcuster.cnblogs.com

*.log日志文件和*.out日志文件

进入我们的Hadoop_LOG目录,我们可以看到如下文件:

在启动Hadoop集群时,由hadoop-daemon.sh脚本指定一些列环境变量,然后log4j.properties文件读取相应的环境变量产生对应的*.log日志文件。这个日志文件输出类型为org.apache.log4j.DailyRollingFileAppender,它会自动按天更新。

*.out文件则是启动某个程序的标准输出重定向。

比如:

hadoop-admin-datanode-horde20.log是在horde20这台机器上启动datanode进程的日志输出,由log4j实现。

hadoop-admin-datanode-horde20.out则是在horde20这台机器上启动datanode时的标准输出。

这些日志仅仅包含在horde20这台机器上启动datanode进程的日志,没有其他的信息。

userlogs目录下的日志文件

进入userlogs目录,我们可以看到:

这里的每一个目录代表每一个task的输出日志。

进入其中一个目录可以看到:

这里的stderr和stdout记录了我们的task(map or reduce)的在这台机器上运行的过程中所产生的标准错误输出和标准输出。这些信息集群中的每一个机器上都会出现,如果数据量足够多的话:)

syslog则记录了在我们的task中,通过log4j接口记录的日志信息。

每一个task都会通过TaskRunner.run()来启动,它会为每一个子java程序指定标准错误输出和标准输出到前面提到的文件中,同时设置相应的参数,其中包括”-Dhadoop.root.logger=INFO,TLA”,这个TLA的定义可以在log4j.properties文件中找到,具体实现是org.apache.hadoop.mapred.TaskLogAppender。这个参数指定了在我们的task中,通过log4j接口记录的日志信息都记录到syslog中。

history目录下的日志文件

进入jobtracker机器的history目录,我们可以看到:

horde20_1250841267760_job_200908211554_0001_conf.xml记录了我们运行这个job时候的配置文件信息。

horde20_1250841267760_job_200908211554_0001_admin_wordcount记录了我们运行这个job的情况。

他们是由JobHistory产生的,并且只在jobtracker机器上产生。

EventCounter

在Hadoop的默认配置log4j.properties中,所有通过log4j接口记录的日志信息还会记录到一个叫EventCounter的Appender中,它的实现是org.apache.hadoop.metrics.jvm.EventCounter,具体的作用是统计Hadoop中使用log4j记录INFO,WARN,ERROR,FATAL信息的次数。

后记

本文介绍了Hadoop中所有的程序日志的来源和作用。希望能给开发和维护人员以帮助。

如果希望完全了解Hadoop的运行状况信息,还需要参考counter和metric。

转自:http://www.cnblogs.com/gpcuster/archive/2009/08/21/1551715.html

深入剖析HADOOP程序日志的更多相关文章

  1. 使用LogMaster4Net实现应用程序日志的集中管理

    日志在软件系统中的重要性我在此也不赘述了,几乎所有程序员每天都会更日志打交道. 那么你是否曾今为这样的一些事情而困扰过: - 远程登录到不同的服务器,找到应用程序目然后查看应用日志: - 来回切换于不 ...

  2. C# 使用Log4Net记录程序日志

    在之前的博客中,写过使用系统内置的Trace类记录程序日志,具体请参考:C# 使用Trace记录程序日志.这篇博客将介绍如何使用Log4Net记录程序日志. 首先需要引用Log4Net.dll,我们可 ...

  3. Hive分析hadoop进程日志

    想把hadoop的进程日志导入hive表进行分析,遂做了以下的尝试. 关于hadoop进程日志的解析 使用正则表达式获取四个字段,一个是日期时间,一个是日志级别,一个是类,最后一个是详细信息, 然后在 ...

  4. 使用Monitor调试Unity3D Android程序日志输出(非DDMS和ADB)

    使用Monitor调试Unity3D Android程序日志输出(非DDMS和ADB) http://www.cnblogs.com/mrkelly/p/4015245.html 以往调试Androi ...

  5. IntelliJ IDEA + Maven环境编写第一个hadoop程序

    1. 新建IntelliJ下的maven项目 点击File->New->Project,在弹出的对话框中选择Maven,JDK选择你自己安装的版本,点击Next 2. 填写Maven的Gr ...

  6. 写window应用程序日志System.Diagnostics.EventLog.WriteEntry

    System.Diagnostics.EventLog.WriteEntry( MySource , Writing to event log. ); 可以写window应用程序日志 查看的地方:右击 ...

  7. eclipse运行hadoop程序报错:Connection refused: no further information

    eclipse运行hadoop程序报错:Connection refused: no further information log4j:WARN No appenders could be foun ...

  8. WIN7下运行hadoop程序报:Failed to locate the winutils binary in the hadoop binary path

    之前在mac上调试hadoop程序(mac之前配置过hadoop环境)一直都是正常的.因为工作需要,需要在windows上先调试该程序,然后再转到linux下.程序运行的过程中,报Failed to ...

  9. 运行第一个Hadoop程序,WordCount

    系统: Ubuntu14.04 Hadoop版本: 2.7.2 参照http://www.cnblogs.com/taichu/p/5264185.html中的分享,来学习运行第一个hadoop程序. ...

随机推荐

  1. xcode黑科技

    1多开模拟器 使用命令行: cd /Applications/Xcode1.app/Contents/Developer/Applications/&open -n Simulator.app ...

  2. windows下重新安装TCP/IP协议栈

    一.windows重装TCP/IP协议     前两天在windows下安装开发环境的时候,把系统的TCP/IP协议栈给搞跪了,导致系统无法ping localhost.无法在程序中创建socket等 ...

  3. DIY_hlstudio_WIN7PE【69M】网络版【89M】

    DIY_hlstudio_WIN7PE[69M]网络版[89M] hlstudio的骨头版PE非常精简,由于启动方式和用法不同,个人进行了如下修改:1.原来的合盘修改为bootmgr直接起动ISO镜像 ...

  4. JSP action elements - JavaBean

    语法 描述 jsp:include 在页面被请求的时候引入一个文件. jsp:useBean 寻找或者实例化一个JavaBean. jsp:setProperty 设置JavaBean的属性. jsp ...

  5. css三级下拉的导航栏

    #menu{ height: 65px; width:100%; background-color: rgba(0, 0, 0, 0.5);}#menu ul{ list-style: none;}# ...

  6. Django开发博客 入门篇

    Django是神马? Django是一个开源免费的Web框架,使用Python编写.能够让你快速写出一个Web应用, 因为它包含了绝大部分的组件,比如认证,表单,ORM,Session,安全,文件上传 ...

  7. jmeter 监听的介绍

    一个侦听器是一个组件,显示的结果 样本. 结果可以显示在一个树,表格,图表或简单地写入到日志中 文件. 查看的内容反应任何给定的采样器,添加的监听器” 视图 结果树 ”或“ 视图的结果表 一个测试计划 ...

  8. python 练习 8

    #!/usr/bin/python # -*- coding: utf-8 -*- def ntom(x,size,mod): t=[0]*(size) j=0 while x and j<si ...

  9. informix数据库下导出表结构

    1)导出数据库中所有的表结构到文件db.sql  $>dbschema -d your_database -t all  db.sql 2)导出数据库中所有的存储过程到文件db.sql  $&g ...

  10. ubuntu下安装基本配置

    安装ubuntu更新: sudo apt-get update sudo apt-get upgrade 安装Docky: sudo add-apt-repository ppa:ricotz/doc ...