2017-08-02 46 views
0

我正在使用Hadoop 2.7.3,使用纱线做一些地图缩小。 为每个容器生成的日志是天文数字。显然使用的级别是DEBUG。 我想将日志级别增加到INFO。如何减少从我的Hadoop纱线容器生成的日志量?

我的安装或多或少是默认安装。

我试着修改我的hadoop-yarn-server-nodemanager - *。jar中的container-log4j.properties,如https://community.hortonworks.com/questions/98259/hdp-250-how-to-override-default-container-log4j-in.html所述,但这并没有帮助。我的每个容器的标准输出文件都很大......而且很可能也是我的地图/缩减太慢的原因。

有没有人有一个想法,我可以增加我的日志级别INFO在我的标准输出容器日志文件?

下面是一个提取我的标准输出之一:

〜/ hadoop的/日志/ userlogs/application_1501740469795_0001/container_1501740469795_0001_01_000001:1282>更多标准输出 08:08:55.337 [主要] DEBUG org.apache.hadoop .metrics2.impl.MetricsSystemImpl - 与JVM相关的度量标准等。 08:08:55.348 [main] DEBUG org.apache.hadoop.metrics2.lib.MutableMetricsFactory - 字段org.apache.hadoop.metrics2.lib.MutableCounterInt org。 apache.hadoop.mapreduce.v2.app.metrics.MRAppMetrics.jobsSubmitted with annotation @ org.apache.hadoop.metrics2.annotation.Metric(about =,sampleName = Ops,always = false,type = DEFAULT, value = [] ,valueName =时间) 08:08:55.355 [main] DEBUG org.apache.hadoop.metrics2.lib.MutableMetricsFactory - 字段org.apache.hadoop.metrics2.lib.MutableCounterInt org.apache.hadoop.mapreduce.v2.app.metrics。 MRAppMetrics.jobs使用注释@ org.apache.hadoop.metrics2.annotation.Metric完成(about =,sampleName = Ops,always = false,type = DEFAULT, value = [],valueName = Time) 08:08:55.360 [ main] DEBUG org.apache.hadoop.metrics2.lib.MutableMetricsFactory - 字段org.apache.hadoop.metrics2.lib.MutableCounterInt org.apache.hadoop.mapreduce.v2.app.metrics.MRAppMetrics.jobsFailed with annotation @ org.apache .hadoop.metrics2.annotation.Metric(about =,sampleName = Ops,always = false,type = DEFAULT,v1.0 = .metrics2.lib.MutableMetricsFactory - 字段org.apache.hadoop.metrics2.lib.MutableCounterInt org.apac he.hadoop.mapreduce.v2.app.metrics.MRAppMetrics.jobsKill with annotation @ org.apache.hadoop.metrics2.annotation.Metric(about =,sampleName = Ops,always = false,type = DEFAULT,va lue = [ ],valueName = Time) 08:08:55.364 [main] DEBUG org.apache.hadoop.metrics2.lib.MutableMetricsFactory - 字段org.apache.hadoop.metrics2.lib.MutableGaugeInt org.apache.hadoop.mapreduce.v2。 app.metrics.MRAppMetrics.jobs使用注释@ org.apache.hadoop.metrics2.annotation.Metric进行准备(about =,sampleName = Ops,always = false,type = DEFAULT,v alue = [],valueName = Time) 08 :08:55.365 [main] DEBUG org.apache.hadoop.metrics2.lib.MutableMetricsFactory - 字段org.apache.hadoop.metrics2.lib.MutableGaugeInt org.apache.hadoop.mapreduce.v2.app.metrics.MRAppMetrics.jobsRunning with注释@ org.apache.hadoop.metrics2.annotation.Metric(about =,sampleName = Ops,always = false,type = DEFAULT,val ue = [],valueName = Time) 08:08:55.365 [main] DEBUG org.apache.hadoop.metrics2.lib.MutableMetricsFactory - 字段org.apache.hadoop.metrics2.lib.MutableCounterInt org.apache.hadoop。 mapreduce.v2.app.metrics.MRAppMetrics.mapsLaunch with annotation @ org.apache.hadoop.metrics2.annotation.Metric(about =,sampleName = Ops,always = false,type = DEFAULT, value = [],valueName = Time ) 08:08:55.365 [main] DEBUG org.apache.hadoop.metrics2.lib.MutableMetricsFactory - field org.apache.hadoop.metrics2.lib.MutableCounterInt org.apache.hadoop.mapreduce.v2.app.metrics.MRAppMetrics .maps用注释@ org.apache.hadoop.metrics2.annotation完成。公制(约=,= sampleName行动,始终=假类型= DEFAULT, 值= [],VALUENAME =时间) ...

感谢您的帮助。

+0

什么是mapreduce.map.log.level和mapreduce.reduce.log.level设置在您的mapred-site.xml中? – tk421

+0

我没有设置它们。我对两者都使用了INFO的默认值。现在我试图在我的mapred-site.xml中指定它们,但这并没有帮助它得到相同的结果。 – BuckBazooka

回答

1

问题是我忽略了发送给stderr的WARNING。

SLF4J:类路径包含多个SLF4J绑定。 SLF4J:在[jar:file:/home/hadoop/HADOOP_DATA-2.7.3/yarnData/usercache/jj/appcache/application_1501771750571_0001/filecache/11/map-reducer-job.jar/lib/logback-classic- 1.1.11.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:在[jar:file:/home/hadoop/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12找到绑定-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:有关说明,请参阅http://www.slf4j.org/codes.html#multiple_bindings。 SLF4J:实际绑定类型[ch.qos.logback.classic.util.ContextSelectorStaticBinder]

我打包我的工作在一个JAR文件与子目录LIB其所需的库。我在它的lib中包含了一个额外的slf4j绑定。

解决方案是从我的作业jar文件中删除第二个slf4j绑定。

之后没有混淆,并且使用的跟踪级别是定义的级别即INFO。 !

+0

这实际上修复了许多副作用,如“无法访问的节点”,失败的任务... – BuckBazooka