Alexey Kudinkin created HUDI-4810:
-------------------------------------

             Summary: Fix Hudi bundles requiring log4j2 on the classpath
                 Key: HUDI-4810
                 URL: https://issues.apache.org/jira/browse/HUDI-4810
             Project: Apache Hudi
          Issue Type: Bug
            Reporter: Alexey Kudinkin
            Assignee: Alexey Kudinkin
             Fix For: 0.12.1


As part of addressing HUDI-4441, we've erroneously rebased Hudi onto 
"log4j-1.2-api" module under impression that it's an API module (as advertised) 
which turned out not to be the case: it's actual bridge implementation, 
requiring Log4j2 be provided on the classpath as required dependency.

For version of Spark < 3.3 this triggers exceptions like the following one 
(reported by [~akmodi])

 
{code:java}
Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/logging/log4j/LogManager    at 
org.apache.hudi.metrics.datadog.DatadogReporter.<clinit>(DatadogReporter.java:55)
    at 
org.apache.hudi.metrics.datadog.DatadogMetricsReporter.<init>(DatadogMetricsReporter.java:62)
    at 
org.apache.hudi.metrics.MetricsReporterFactory.createReporter(MetricsReporterFactory.java:70)
    at org.apache.hudi.metrics.Metrics.<init>(Metrics.java:50)    at 
org.apache.hudi.metrics.Metrics.init(Metrics.java:96)    at 
org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamerMetrics.<init>(HoodieDeltaStreamerMetrics.java:44)
    at 
org.apache.hudi.utilities.deltastreamer.DeltaSync.<init>(DeltaSync.java:243)    
at 
org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer$DeltaSyncService.<init>(HoodieDeltaStreamer.java:663)
    at 
org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer.<init>(HoodieDeltaStreamer.java:143)
    at 
org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer.<init>(HoodieDeltaStreamer.java:116)
    at 
org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer.main(HoodieDeltaStreamer.java:562)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)   
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)    at 
org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)    
at 
org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:1000)
    at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)   
 at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)    at 
org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)    at 
org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1089)    
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1098)    at 
org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)Caused by: 
java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager    at 
java.net.URLClassLoader.findClass(URLClassLoader.java:387)    at 
java.lang.ClassLoader.loadClass(ClassLoader.java:418)    at 
java.lang.ClassLoader.loadClass(ClassLoader.java:351)    ... 23 more {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to