hadoop-----joblog读写流程

1、job提交后,调用JobSubmitter的submitJobInternal方法提交job相关文件到hdfs

2、nodemanager启动时会初始化本地目录,并清除本地yarn.nodemanager.local-dirs下的filecache/usercache/nmprivate目录下的资源文件

3、nodemanager的container资源初始化:ResourceLocalizationService服务中LocalizerRunner分别会去下载job相关文件

4、container运行完成时会触发JobHistoryEvent事件,JobHistoryEventHandler接收事件就向hdfs写对应job的log

5、Historyserver服务会定时(默认间隔1天)删除mapreduce.jobhistory.done-dir目录中过期(默认七天过期)的.jhist/_conf.xml文件

6、Historyserver服务会定时(默认间隔3分钟)从hdfs的mapreduce.jobhistory.intermediate-done-di目录将.jhist/_conf.xml移动到mapreduce.jobhistory.done-dir目录,同时删除/.summary文件

应用优化点:Historyserver上面会有几个定时任务用于log及job相关文件的搬迁,这里面可以方便定制自己的定时任务,比如成功job日志和失败job日志删除时间不一样,以及增加mapreduce jar包缓存功能后,可以定时删除hdfs上的文件。

对应流程如下图所示:



 

猜你喜欢

转载自rainforc.iteye.com/blog/2286333