Also, SLF4J is not a logging package, but a logging facade. I think that you need slf4j *and* a specific logging package. You have slf4j-log4j, but it isn't clear you have have log4j. You may prefer to put the static slf4j binding in the class path to avoid the need for log4j.
Logging packages are generally a pain in the butt since they tend to be kind of fancy in what they require on the classpath. On Sat, Aug 13, 2011 at 3:18 PM, Sean Owen <[email protected]> wrote: > The unhelpful comment is that, well, the problem is exactly what you've > already said: there is no SLF4J binding in the classpath where it needs to > be. I suspect you're perhaps mixing up classpaths. Which actual Java task > isn't printing -- the Hadoop worker? are you sure the bindings are in its > classpath, versus say the classpath of the runner program? > > On Sat, Aug 13, 2011 at 9:39 PM, Dhruv Kumar <[email protected]> wrote: > > > I am running into a strange problem which has started happening only > after > > I > > did a svn update on Mahout's trunk this morning. > > > > For testing out MAHOUT-627, I have created some client code using > IntelliJ > > IDEA. In the jar artifact, I have added Mahout and Hadoop-0.20.203.0 > > libraries as dependencies. > > > > If I run my code using: > > > > dhruv@tachyon:~/hadoop-0.20.203.0/bin$ ./hadoop -jar > > ~/TestBaumWelch/out/artifacts/TestBaumWelch_jar/TestBaumWelch.jar > > TestBaumWelch.TestBaumWelch > > > > I am unable to see any logs on the terminal or on the MapReduce web admin > > console (http://localhost:50030/jobtracker.jsp). The admin console does > > not > > even show that any job is running. > > > > But, I can clearly tell that the program is executing, since I get a > series > > of map 100%, reduce 100% and other INFO messages one after the other and > > because it produces results in the output directories. > > > > However, when I run the Hadoop's canonical Word Count example which does > > not > > depend on Mahout, I am able to see logs via the web admin console and > > everything goes OK. > > > > > > I suspect this is because of SLF4J on my system, there may be more than > one > > class binding or none at all. Here are the warning messages emitted soon > > after I run the program: > > > > SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". > > SLF4J: Defaulting to no-operation (NOP) logger implementation > > SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for > further > > details. > > > > > > However, slf4j is clearly on the classpath. > > > > For hadoop, a portion of echo $CLASSPATH reveals: > > > > :/home/dhruv/hadoop-0.20.203.0/bin/../lib/slf4j-log4j12-1.4.3.jar > > > > For mahout: > > > > > > > /home/dhruv/mahout/examples/target/dependency/slf4j-api-1.6.1.jar:/home/dhruv/mahout/examples/target/dependency/slf4j-jcl-1.6.1.jar:/home/dhruv/mahout/examples/target/dependency/slf4j-log4j12-1.6.1.jar: > > > > > > Also, during Mahout's "mvn install" the slf4j is being added since I can > > see > > the following messages: > > > > [INFO] org/slf4j/ already added, skipping > > [INFO] org/slf4j/impl/ already added, skipping > > [INFO] org/slf4j/impl/StaticLoggerBinder.class already added, skipping > > [INFO] org/slf4j/impl/StaticMarkerBinder.class already added, skipping > > [INFO] org/slf4j/impl/StaticMDCBinder.class already added, skipping > > > > Has any one else run into a problem like this before? > > >
