1.深入剖析hadoop的运行过程以及日志采集经过

本文深入探讨了Hadoop的运行过程,包括Application Master和Container的日志,详细阐述了NameNode、DataNode、ResourceManager的日志存储路径,并介绍了如何配置日志目录。同时,也分析了MapReduce程序的历史作业日志和Container日志,以及如何通过配置历史服务器来查看作业信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

查看hdfs下的目录命令为hdfs dfs -ls \

如图所示:

其中环境变量中的配置情况如下所示:

其中诸如NameNode、DataNode、ResourceManage等系统自带的服务输出来的日志默认是存放在{hadoop_home}的logs目录下面的:

如下所示:

resourcemanager的输出日志为yarn-${USER}-resourcemanager-${hostname}.log,

进入之后显示的log相关日志如下所示:

total 11412
-rw-rw-r-- 1 hadoop hadoop 3795096 Apr 15 10:53 hadoop-hadoop-datanode-master.log
-rw-rw-r-- 1 hadoop hadoop     717 Apr  8 11:52 hadoop-hadoop-datanode-master.out
-rw-rw-r-- 1 hadoop hadoop    3024 Apr  1 15:20 hadoop-hadoop-datanode-master.out.1
-rw-rw-r-- 1 hadoop hadoop     717 Mar 29 11:06 hadoop-hadoop-datanode-master.out.2
-rw-rw-r-- 1 hadoop hadoop     717 Mar 29 10:46 hadoop-hadoop-datanode-master.out.3
-rw-rw-r-- 1 hadoop hadoop     717 Mar 28 15:57 hadoop-hadoop-datanode-master.out.4
-rw-rw-r-- 1 hadoop hadoop     717 Mar 26 14:31 hadoop-hadoop-datanode-master.out.5
-rw-rw-r-- 1 hadoop hadoop 6839670 Apr 15 11:17 hadoop-hadoop-namenode-master.log
-rw-rw-r-- 1 hadoop hadoop    4908 Apr  8 13:35 hadoop-hadoop-namenode-master.out
-rw-rw-r-- 1 hadoop hadoop    4908 Mar 29 17:43 hadoop-hadoop-namenode-master.out.1
-rw-rw-r-- 1 hadoop hadoop    4913 Mar 29 11:20 hadoop-hadoop-namenode-master.out.2
-rw-rw-r-- 1 hadoop hadoop     717 Mar 29 10:46 hadoop-hadoop-namenode-master.out.3
-rw-rw-r-- 1 hadoop hadoop     717 Mar 28 15:57 hadoop-hadoop-namenode-master.out.4
-rw-rw-r-- 1 hadoop hadoop    4908 Mar 26 14:35 hadoop-hadoop-namenode-master.out.5
-rw-rw-r-- 1 hadoop hadoop       0 Mar 26 14:31 SecurityAuth-hadoop.audit
drwxr-xr-x 2 hadoop hadoop       6 Apr 15 11:24 userlogs
-rw-rw-r-- 1 hadoop hadoop  252785 Apr 14 11:52 yarn-hadoop-nodemanager-master.log
-rw-rw-r-- 1 hadoop hadoop    2616 Apr 12 17:21 yarn-hadoop-nodemanager-master.out
-rw-rw-r-- 1 hadoop hadoop     701 Mar 29 17:42 yarn-hadoop-nodemanager-master.out.1
-rw-rw-r-- 1 hadoop hadoop     701 Mar 29 11:07 yarn-hadoop-nodemanager-master.out.2
-rw-rw-r-- 1 hadoop hadoop     701 Mar 29 10:47 yarn-hadoop-nodemanager-master.out.3
-rw-rw-r-- 1 hadoop hadoop     701 Mar 28 15:58 yarn-hadoop-nodemanager-master.out.4
-rw-rw-r-- 1 hadoop hadoop     701 Mar 26 14:32 yarn-hadoop-nodemanager-master.out.5
-rw-rw-r-- 1 hadoop hadoop  663914 Apr 14 12:07 yarn-hadoop-resourcemanager-master.log
-rw-rw-r-- 1 hadoop hadoop    2078 Apr  8 14:51 yarn-hadoop-resourcemanager-master.out
-rw-rw-r-- 1 hadoop hadoop     701 Mar 29 17:42 yarn-hadoop-resourcemanager-master.out.1
-rw-rw-r-- 1 hadoop hadoop     701 Mar 29 11:07 yarn-hadoop-resourcemanager-master.out.2
-rw-rw-r-- 1 hadoop hadoop     701 Mar 29 10:47 yarn-hadoop-resourcemanager-master.out.3
-rw-rw-r-- 1 hadoop hadoop     701 Mar 28 15:58 yarn-hadoop-resourcemanager-master.out.4
-rw-rw-r-- 1 hadoop hadoop    2078 Mar 26 14:34 yarn-hadoop-resourcemanager-master.out.5

log后面的数字越大,表示对应的时间越旧,默认保留是前20个。

resourcemanager日志存放路径也是可以配置的(在${HADOOP_HOME}/etc/hadoop/yarn-env.sh):

# default log directory & file

if [ "$YARN_LOG_DIR" = "" ]; then

  YARN_LOG_DIR="$HADOOP_YARN_HOME/logs"

fi

只需要修改YARN_LOG_DIR的值,这时候,yarn相关的日志记录都将存放在你配置的目录下。

默认配置显示如下所示:

二、Mapreduce程序相关的日志

  Mapreduce程序的日志可以分为历史作业日志和Container日志。
  1》历史作业的记录里面包含了一个作业用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息;这些信息对分析作业是很有帮助的,我们可以通过这些历史作业记录得到每天有多少个作业运行成功、有多少个作业运行失败、每个队列作业运行了多少个作业等很有用的信息。这些历史作业的信息是通过下面的信息配置的:

<property>

    <name>mapreduce.jobhistory.done-dir</name>

    <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>

</property>

  

<property>

    <name>mapreduce.jobhistory.intermediate-done-dir</name>

    <value>${yarn.app.mapreduce.am.staging-dir}

                         /history/done_intermediate</value>

</property>

  

<property>

    <name>yarn.app.mapreduce.am.staging-dir</name>

    <value>/tmp/hadoop-yarn/staging</value>

</property>

 

2)、Container日志包含ApplicationMaster日志和普通Task日志等信息。默认情况下,这些日志信息是存放在${HADOOP_HOME}/logs/userlogs目录下,我们可以通过下面的配置进行修改:

相关的logs地址实现过程如下所示:

相关的配置路径如下所示:

 

针对hadoop相关的服务器进行相关分析,以及解析,过程如下所示:

Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop历史服务器是没有启动的,我们可以通过下面的命令来启动Hadoop历史服务器

 

这样我们就可以在相应机器的19888端口上打开历史服务器的WEB UI界面。可以查看已经运行完的作业情况。历史服务器可以单独在一台机器上启动,主要是通过以下的参数配置

配置完成如下所示:

在mapred-site.xml文件中进行更改相关的配置以及过程:

更改成功显示过程如下所示:

 

完整更改的相关配置如下所示:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
   <property> 
       <name>mapreduce.jobhistory.address</name>
       <value>192.168.100.21:10020</value>
   </property>
      
   <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.100.21:19888</value>
   </property>
</configuration>
~                  

查看hdfs的目录相关命令:

hdfs dfs -ls /

查看下面的文件夹的子目录命令:

hdfs dfs -ls /weblog

如下所示:

对比一下web界面的相关的log日志如下所示:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值