Yarn之日志分析

前言

Yarn中的id种类繁多,比较乱,下面整理下yarn中常出现的几种id,分别介绍一下。

1)jobId
描述:出自MapReduce,对作业的唯一标识。
格式:job_${clusterStartTime}_${jobid}
例子:job_1498552288473_2742

2)applicationId
描述:在yarn中对作业的唯一标识。
格式:application_${clusterStartTime}_${applicationId}
例子:application_1498552288473_2742

3)taskId
描述:作业中的任务的唯一标识
格式:task_${clusterStartTime}_${applicationId}_[m|r]_${taskId}
例子:task_1498552288473_2742_m_000000、task_1498552288473_2742_r_000000

4)attempId
描述:任务尝试执行的一次id
格式:attempt_${clusterStartTime}_${applicationId}_[m|r]_${taskId}_${attempId}
例子:attempt_1498552288473_2742_m_000000_0

5)appAttempId
描述:ApplicationMaster的尝试执行的一次id。
格式:appattempt_${clusterStartTime}_${applicationId}_${appAttempId}
例子:appattempt_1498552288473_2742_000001

6)containerId:
描述:container的id
格式:container_e*epoch*_${clusterStartTime}_${applicationId}_${appAttempId}_${containerId}
例子:container_e20_1498552288473_2742_01_000032、container_1498552288473_2742_01_000032

一、yarn中的几种日志

  • 服务类日志
    诸如ResourceManage、NodeManager等系统自带的服务输出来的日志默认是存放在${HADOOP_HOME}/logs目录下,此参数可以通过参数YARN_LOG_DIR(yarn-env.sh配置文件,当前配置为:/data1/hadoop/logs/$USER)指定。比如resourcemanager的输出日志为yarn-${USER}-resourcemanager-${hostname}.log,其中${USER}s是指启动resourcemanager进程的用户,${hostname}是resourcemanager进程所在机器的hostname,nodemanager的输出日志格式为:yarn-${USER}-nodemanager-${hostname}.log,这类日志可以查看当前resourcemanager和nodemanager两个服务的运行情况。
    日志路径:
     /data1/hadoop/logs/yarn
    
  • 任务日志
    1)作业的统计日志:
    历史作业的记录里面包含了一个作业用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息;这些信息对分析作业是很有帮助的,我们可以通过这些历史作业记录得到每天有多少个作业运行成功、有多少个作业运行失败、每个队列作业运行了多少个作业等很有用的信息。这部分日志会用于JobHistoryServer。
  相关参数:
   key : apreduce.jobhistory.done-dir   
   value : /var/hadoop/mapred/mr-history/done 

   key : mapreduce.jobhistory.intermediate-done-dir  
   value :/var/hadoop/mapred/mr-history/tmp

2)作业的运行日志:
Container日志包含ApplicationMaster日志和普通Task日志等信息,主要包含container的启动脚本,还有container的运行日志。默认情况下,这些日志信息是存放在${HADOOP_HOME}/logs/userlogs目录下,我们可以通过下面的配置进行修改。

 相关参数:
 key : yarn.nodemanager.log-dirs
 value : /data1/hadoop/yarn/log,/data14/hadoop/yarn/log,/data12/hadoop/yarn/log,/data7/hadoop/yarn/log,/data8/hadoop/yarn/log,/data6/hadoop/yarn/log,/data13/hadoop/yarn/log,/data4/h
adoop/yarn/log,/data9/hadoop/yarn/log,/data11/hadoop/yarn/log,/data5/hadoop/yarn/log,/data2/hadoop/yarn/log,/data15/hadoop/yarn/log,/data3/hadoop/yarn/log,/data10/hadoop/yarn/log,/data1
6/hadoop/yarn/log 

二、日志的聚合

从上面作业的运行日志中可以发现,container的日志在一台机器的16块盘上都会存在日志,而且并不知道container的日志会在哪个盘上,默认情况下,每块盘上都会创建相同的applicationid,而且applicationid中都会创建相同的containerid,但是并不是每个container中都会存在日志,这块由container自己的机制选择往哪个container目录中写入日志,其他的container目录则为空。这在一定程度上导致了想查看任务的运行日志比较困难。
日志的聚合功能可以解决这个问题。

开启此项功能:
key : yarn.log-aggregation-enable
value : true

此项功能会把各nodemanager上的application的所有盘上的container上传到hdfs

相关参数:
key : yarn.nodemanager.remote-app-log-dir
value : /var/hadoop/yarn

key : yarn.nodemanager.remote-app-log-dir-suffix
value: logs

hdfs上路径:
/var/hadoop/yarn/${user}/logs

查看日志的方式

1)通过web页面
2)命令行 yarn logs -applicationId ${applicationId}

三、日志聚合的机制

image.png

四、日志清理

相关参数:
key : mapreduce.jobhistory.max-age-ms
value : 2592000000 (30天)
descrption:负责清理hdfs路径下日志 /var/hadoop/mapred/mr-history/done

key : yarn.log-aggregation.retain-seconds
value : 2592000 (30天)
description:负责清理hdfs路径下日志 /var/hadoop/yarn/${user}/logs

服务器上的本地日志在任务执行完进行日志聚合之后会自动进行删除,不过老数据目前还没有清理。

五、日志相关参数

1) yarn.log-aggregation-enable
    是否开启日志聚合功能
2) yarn.log-aggregation.retain-seconds
    hdfs上的日志保留多久。当前配置路径为:/var/hadoop/yarn/${user}/logs
3) yarn.log-aggregation.retain-check-interval-seconds
    多长时间检查一次日志,并将满足条件的删除,如果是0或者负数,则为上一个值的1/10,已经配置为:1296000(15天)
4) yarn.nodemanager.remote-app-log-dir
    前缀目录:/var/hadoop/yarn
5) yarn.nodemanager.remote-app-log-dir-suffix
    后缀目录:logs
6) yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds
    每隔一段时间进行日志的聚合,当前配置为:3600。如果配置为-1,则会等待任务执行完还会聚合

六、其他

关于清理日志的方法
1.NonAggregatingLogHandler

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容