[ 
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

Reply via email to