全方位揭秘!大数据从0到1的完美落地之YARN的历史日志

  • Post author:
  • Post category:其他




YARN的历史日志



历史日志概述

我们在YARN上运行MapReduce的程序的时候,可以在控制台上看到任务的日志输出,以获取到任务的运行状态。同时,YARN也会将日志写在本地的**$HADOOP_HOMOE/logs/userlogs**文件夹中,我们可以到文件夹中进行日志的查看。但是这个文件夹中的内容,会随着YARN的重启而被删除掉。那么此时我们将如何查看日志?

此时就需要开启Hadoop的历史日志服务了,Hadoop会将MapReduce的任务日志在HDFS也保留一份,我们可以通过Hadoop的历史任务服务来查看到之前的历史日志!

但是每一个程序会被分布在不同的节点上进行运行,我们在进行任务查看的时候还得一个个的去指定节点进行查看,并一个个的找MapTask或者ReduceTask的日志,很麻烦!预设YARN提供了历史日志聚合的服务!

顾名思义,就是将每一个程序的历史日志都聚合在一起,存储在HDFS上,方便查看!



mr-historyserver

顾名思义,就是去记录MapReduce的历史日志的。接下来我们从配置开始、到日志聚合、运行任务去讲解。



配置文件
  1. mapred-site.xml

    <!-- 添加如下配置 -->
    
    <!-- 历史任务的内部通讯地址 -->
    <property>
        <name>MapReduce.jobhistory.address</name>
        <value>qianfeng01:10020</value>
    </property>
    
    <!--历史任务的外部监听页面-->
    <property>
        <name>MapReduce.jobhistory.webapp.address</name>
        <value>qianfeng01:19888</value>
    </property>
    
  2. yarn-site.xml

    <!-- 添加如下配置 -->
    
    <!-- 是否需要开启日志聚合 -->
    <!-- 开启日志聚合后,将会将各个Container的日志保存在yarn.nodemanager.remote-app-log-dir的位置 -->
    <!-- 默认保存在/tmp/logs -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    
    <!-- 历史日志在HDFS保存的时间,单位是秒 -->
    <!-- 默认的是-1,表示永久保存 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    
    <property>
        <name>yarn.log.server.url</name>
        <value>http://qianfeng01:19888/jobhistory/logs</value>
    </property>
    


分发配置
[root@qianfeng01 ~]# cd $HADOOP_HOME/etc/hadoop
[root@qianfeng01 hadoop]# scp mapred-site.xml yarn-site.xml qianfeng02:$PWD
[root@qianfeng01 hadoop]# scp mapred-site.xml yarn-site.xml qianfeng03:$PWD


开启历史服务
# 重启YARN集群
[root@qianfeng01 ~]# stop-yarn.sh
[root@qianfeng01 ~]# start-yarn.sh
# 打开历史服务
[root@qianfeng01 ~]# mapred --daemon start historyserver

# 开启之后,通过jps可以查看到 JobHistoryServer 进程,表示开启成功


执行任务
[root@qianfeng01 ~]# hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output

​ 我们以官方案例wordcount为例,现在在运行完这个任务后,就会在WebUI上看到这个任务。我们可以点击任务的ID进入到任务的详情页,此时可以查看日志。

image-20220203230532566

image-20220203230555305

也可以在http://192.168.10.101:19888查看每一个MapTask、ReduceTask的日志

image-20220203231226759

image-20220203231520669



版权声明:本文为weixin_42044506原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。