You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Jeff Evans (Jira)" <ji...@apache.org> on 2020/06/23 16:12:00 UTC
[jira] [Updated] (KUDU-3157) kudu-spark2 jar is now including slf4j
classes
[ https://issues.apache.org/jira/browse/KUDU-3157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jeff Evans updated KUDU-3157:
-----------------------------
Description:
It seems that sometime between versions {{1.7.0}} and {{1.12.0}} of {{org.apache.kudu:kudu-spark2_2.11}}, some SLF4J classes started being included.
These should be removed from the jar, or at least relocated so as not to clash with Spark vendor dependencies, which can cause {{LinkageError}} in Spark clusters. Real life example of this problem, seen on a Spark job started on CDH 6.3 cluster:
{code}
Exception in thread "main" java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/spark/util/ChildFirstURLClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for the method\'s defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:423)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
{code}
was:
It seems that sometime between versions {{1.7.0}} and {{1.12.0}} of {{org.apache.kudu:kudu-spark2_2.11}}, some SLF4J classes started begin included.
These should be removed from the jar, or at least relocated so as not to clash with Spark vendor dependencies, which can cause {{LinkageError}} in Spark clusters. Real life example of this problem, seen on a Spark job started on CDH 6.3 cluster:
{code}
Exception in thread "main" java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/spark/util/ChildFirstURLClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for the method\'s defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:423)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
{code}
> kudu-spark2 jar is now including slf4j classes
> ----------------------------------------------
>
> Key: KUDU-3157
> URL: https://issues.apache.org/jira/browse/KUDU-3157
> Project: Kudu
> Issue Type: Bug
> Components: spark
> Affects Versions: 1.12.0
> Reporter: Jeff Evans
> Priority: Major
>
> It seems that sometime between versions {{1.7.0}} and {{1.12.0}} of {{org.apache.kudu:kudu-spark2_2.11}}, some SLF4J classes started being included.
> These should be removed from the jar, or at least relocated so as not to clash with Spark vendor dependencies, which can cause {{LinkageError}} in Spark clusters. Real life example of this problem, seen on a Spark job started on CDH 6.3 cluster:
> {code}
> Exception in thread "main" java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/spark/util/ChildFirstURLClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for the method\'s defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
> at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:423)
> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)