2012-02-22 1 views
4

J'ai installé HBase 0.92 sur Hadoop 1.0.0 et cela fonctionne correctement en mode distribué, mais un avertissement ennuyant continue à apparaître. Comment puis-je m'en débarrasser?Avertissements HBase 0.92 à propos des liaisons SLF4J

....... 
hbase(main):001:0> status 
SLF4J: Class path contains multiple SLF4J bindings. 

SLF4J: Found binding in 
[jar:file:/opt/hbase-0.92.0/lib/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class] 

SLF4J: Found binding in 
[jar:file:/opt/hadoop-1.0.0/lib/slf4j-log4j12-1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
: See http://www.slf4j.org/codes.html#multiple_bindings for an 
explanation. 

3 servers, 0 dead, 0.6667 average load 

....... 

P.S. Je n'ai pas défini la variable $CLASSPATH dans hbase-env.sh. Je lance Hadoop avec start-all.sh, puis démarre HBase avec start-hbase.sh.

Répondre

12

J'ai retiré le slf4j-log4j12-1.5.8.jar dans ${hase}/lib/ puis l'avertissement ne s'affiche plus jamais. Il doit être dû à une classe dupliquée chargée, à la fois hadoop et hbase utiliser le même jar dans le même.

Vous pouvez faire un essai.

+1

Oui, cela a fonctionné, merci – Eric

+0

cela a fonctionné pour moi aussi, merci. – Burhan

0

L'avertissement émis par SLF4J n'est qu'un avertissement. Même lorsque plusieurs liaisons sont présentes, SLF4J choisira une structure/implémentation de journalisation et liera avec elle. La façon dont la SLF4J choisit une liaison est déterminée par la JVM et doit, à toutes fins pratiques, être considérée comme aléatoire. À partir de la version 1.6.6, SLF4J nommera la classe de cadre/d'implémentation à laquelle elle est réellement liée.

Les composants incorporés tels que les bibliothèques ou les frameworks ne doivent pas déclarer de dépendance à une liaison SLF4J, mais dépendent uniquement de slf4j-api. Lorsqu'une bibliothèque déclare une dépendance à la compilation sur une liaison SLF4J, elle impose cette liaison à l'utilisateur final, annulant ainsi le but de SLF4J. Lorsque vous tombez sur un composant incorporé déclarant une dépendance à la compilation sur une liaison SLF4J, prenez le temps de contacter les auteurs de ce composant/bibliothèque et demandez-leur de se corriger.

+1

Ce n'est pas une réponse à la question. OP voulait savoir, comment se débarrasser de l'avertissement – lokusking

+0

supprimer un des jar slf4j des chemins spécifiés, alors vous ne recevez pas d'avertissement – siva

Questions connexes