[ https://issues.apache.org/jira/browse/HADOOP-13344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15371790#comment-15371790 ]
Allen Wittenauer commented on HADOOP-13344: ------------------------------------------- I've been thinking about this off and on all day. IMHO: * I get why slf4j doesn't want multiple bindings in place as a CYA maneuver but it's still annoying. (officially, believe it or not, there is no set order for a JVM to process the classpath. I actually did the research when cleaning up the shell code a few years ago. So the docs are correct in that it might be random, but unofficially... changing that would break the world.) * I think moving it to a place that may be optionally triggered off is a really the only realistic fix here. Munging the classpath to remove it (especially when we tend to use wildcards to speed things up), is just painful. * Since that path is default on, this shouldn't be an incompatible break. Users who turn it off are making the decision to disable it the same way they would a plug-in. This is nearly the same sorts of decisions we give users to turn things on, such as special options to fsck. * Unofficially, this will break things like Apache Big Top which does a lot of strange and weirdo directory munging since it literally re-arranges the distribution as built by Apache Hadoop. But live by the sword, die by the sword. This will effectively turn this into a script + pom patch. As a result, it *might* end up being too big for Jenkins if all of the poms have slf4j listed as a dependency. So we need to keep an eye on that. One thing I forgot to mention: bq. I assume that any documentation that already exists regarding hadoop-config.sh should have this feature documented. branch-2's scripts are completely and totally undocumented. That's not true for trunk. Documentation for the var to turn this on/off should get added to hadoop-env.sh. > Add option to exclude Hadoop's SLF4J binding > -------------------------------------------- > > Key: HADOOP-13344 > URL: https://issues.apache.org/jira/browse/HADOOP-13344 > Project: Hadoop Common > Issue Type: New Feature > Components: bin, scripts > Affects Versions: 2.8.0, 2.7.2 > Reporter: Thomas Poepping > Assignee: Thomas Poepping > Labels: patch > Attachments: HADOOP-13344.patch > > > If another application that uses the Hadoop classpath brings in its own SLF4J > binding for logging, and that jar is not the exact same as the one brought in > by Hadoop, then there will be a conflict between logging jars between the two > classpaths. This patch introduces an optional setting to remove Hadoop's > SLF4J binding from the classpath, to get rid of this problem. > This patch should be applied to 2.8.0, as bin/ and hadoop-config.sh structure > has been changed in 3.0.0. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org