[
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: [email protected]
For additional commands, e-mail: [email protected]