[ 
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)

Reply via email to