[ https://issues.apache.org/jira/browse/MAHOUT-1399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stevo Slavic updated MAHOUT-1399: --------------------------------- Fix Version/s: (was: 1.0) 0.9 Affects Version/s: (was: 1.0) 0.8 Status: Patch Available (was: Open) Mahout modules depend on slf4j-api, and during tests slf4j-jcl binding is provided. Mahout examples module depended on slf4j-jcl too, but with runtime scope. When examples job assembly unpacks dependencies and produces a fat jar, it includes slf4j-jcl in examples-job jar. Then at runtime, SLF4J would complain about two bindings on classpath. One is from fat jar. In Mahout local execution mode, second binding would come from slf4j-jcl jar found in examples/target/dependency directory (created by maven-dependency-plugin:copy-dependencies execution, and used by bin/mahout script). When examples are run in map-reduce mode on Hadoop, second binding, slf4j-log4j, would come from Hadoop lib directory. Attached patch attempts to fix this so it works in both local and map-reduce mode, by making use of slf4j-log4j instead, in Mahout examples only. It's marked as provided so it doesn't get packaged in examples job fat jar. In local mode a single binding, slf4j-log4j (with supporting log4j, and jcl-over-slf4j for any commons-logging using library) will be on classpath, from examples/target/dependency directory. In map-reduce mode, same slf4j-log4j binding (and other supporting logging jars) is provided by Hadoop itself. [~smarthi], please test the patch, and if you find appropriate, consider including in 0.9. > Silence logging noise from Mahout Jobs > -------------------------------------- > > Key: MAHOUT-1399 > URL: https://issues.apache.org/jira/browse/MAHOUT-1399 > Project: Mahout > Issue Type: Improvement > Components: CLI > Affects Versions: 0.8 > Reporter: Frank Scholten > Assignee: Frank Scholten > Priority: Trivial > Fix For: 0.9 > > Attachments: mahout-MAHOUT-1399.patch > > > Mahout jobs produce a lot of output on the command line and log messages like > these below are distracting: > attempt_201311181700_0002_m_000000_0: SLF4J: Class path contains multiple > SLF4J bindings. > attempt_201311181700_0002_m_000000_0: SLF4J: Found binding in > [jar:file:/home/hadoop/lib/slf4j-log4j12-1.7.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] > attempt_201311181700_0002_m_000000_0: SLF4J: Found binding in > [jar:file:/mnt/var/lib/hadoop/mapred/taskTracker/hadoop/jobcache/job_201311181700_0002/jars/job.jar!/org/slf4j/impl/StaticLoggerBinder.class] > attempt_201311181700_0002_m_000000_0: SLF4J: See > http://www.slf4j.org/codes.html#multiple_bindings for an explanation. > attempt_201311181700_0002_m_000000_0: SLF4J: Actual binding is of type > [org.slf4j.impl.Log4jLoggerFactory] > Let's silence log messages like these that do not provide information about > the Mahout job itself. If you have more instances of superfluous logging add > this to the issue. -- This message was sent by Atlassian JIRA (v6.1.5#6160)