Hi All!

We are trying to configure a custom Kafka log appender for our YARN
application and we hit the following problem.

We included the log appender dependency in the fatjar of the application
because in YARN that should be part of the system class path.

However when the YARN cluster entrypoints run (YarnJobClusterEntrypoint,
YarnTaskExecutorRunner) these only seem to have the contents of lib on
their classpath. Does someone have any pointers to how the classpath is
configured for running the entrypoints?

The exception is this:

java.lang.ClassNotFoundException:
org.apache.kafka.log4jappender.KafkaLog4jAppender
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198)
        at 
org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:327)
        at 
org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:124)
        at 
org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:785)
        at 
org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
        at 
org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
        at 
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
        at 
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
        at 
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
        at 
org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:81)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:329)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:349)
        at 
org.apache.flink.runtime.entrypoint.ClusterEntrypoint.<clinit>(ClusterEntrypoint.java:104)


Thanks,
Gyula

Reply via email to