Fix Hadoop SLF4J interoperability
When running LDIF via Hadoop, the Hadoop SLF4J libraries must currently be removed manually since LDIF provides its own set - e.g.
rm /usr/local/hadoop/lib/slf4j-*
.
Leave a comment
on 2011-12-28 14:47 *
By Andrea Matteini
Assigned to set to Andrea Matteini
Status changed from New to Test
Hadoop 0.20.203.0 (current stable version) uses/depends on:
LDIF uses/depends on:
The issue arises because slf4j-api-1.4.3 and slf4j-api-1.6.4 are not compatible (details http://www.slf4j.org/compatibility.html).
I changed slf4j from 1.6.4 to 1.4.3 in LDIF (note: jul is supported only from 1.5.2)
- slf4j-api-1.4.3
- slf4j-log4j12-1.4.3 - binding for log4j version 1.2
LDIF uses/depends on:
- slf4j-api-1.6.4
- log4j-over-slf4j-1.6.4
- jcl-over-slf4j-1.6.4
- jul-to-slf4j-1.6.4
- logback-1.0 - implements SLF4J natively
The issue arises because slf4j-api-1.4.3 and slf4j-api-1.6.4 are not compatible (details http://www.slf4j.org/compatibility.html).
I changed slf4j from 1.6.4 to 1.4.3 in LDIF (note: jul is supported only from 1.5.2)
on 2011-12-28 15:08 *
By Andrea Matteini
on 2011-12-29 13:54 *
By Andrea Matteini
Using slf4j-api-1.4.3 (and log4j-over-slf4j-1.4.3), the TDB test fails beacuse of this bug http://bugzilla.slf4j.org/show_bug.cgi?id=225 (org.apache.log4j.PropertyConfigurator is supported only from log4j-over-slf4j-1.6.2)
A solution would be to use slf4j-log4j12-1.4.3 (binding for log4j) instead of log4j-over-slf4j-1.4.3 plus logback.
A solution would be to use slf4j-log4j12-1.4.3 (binding for log4j) instead of log4j-over-slf4j-1.4.3 plus logback.
on 2011-12-29 17:47 *
By Andrea Matteini
Since java.util.logging (jul) handler is not provided for SLF4J 1.4.3 (only from 1.5.2), all incoming jul messages (eg. from ldspider, silk) are not redirected to the SLF4J API, but just printed.
Added documentation in the Wiki - http://www.assembla.com/spaces/ldif/wiki/Hadoop_troubleshooting_
update: Hadoop 1.0.0 still depends on slf4j-api-1.4.3
update: Hadoop 1.0.0 still depends on slf4j-api-1.4.3