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)