一、概述
hadoop中主要有三类的MR任务:普通javaMR、streaming、pipes。其中streaming与pipes本质是差不多的,都会创建一个新的进程(除child外的),streaming是基于in、out、err标准输入输出来传递数据的,pipes则是通过socket来传递数据的。要查询他们的具体内容,请google去吧。本文主要讲述他们的日志限制问题。由于他们都是用户自定义的程序,所以往往认为是不可靠的,特别是对磁盘空间的利用,最严重的表现就是写入大量的日志直接把磁盘打满,这样TaskTracker就相当于罢工了。
二、分析
在配置文件中有一个配置项mapred.userlog.limit.kb,默认是0,就是限制用户的日志大小的作用,当配置为10kb的时候,那么任务当写到10k左右的日志的时候就会不再写入日志了。这个参数在三类任务中还是有点差别的。先说出他们之间的关系:
类型\日志 stdout stderr syslog 普通javaMR 官方无限制,阿里巴巴用mapred