I work with vanilla versions of components
- Apache Kafka 3.3.2 Scala 2.12
- Apache Ranger 2.3.0
server.properties: authorizer.class.name=org.apache.ranger.authorization.kafka.authorizer.RangerKafkaAuthorizer
The necessary libraries copied to $KAFKA_HOME/libs
- ranger-kafka-plugin-impl/
- ranger-kafka-plugin-shim-2.3.0.jar
- ranger-plugin-classloader-2.3.0.jar
When starting kafka, I get an error
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: java.lang.NoClassDefFoundError: kafka/security/auth/Authorizer
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/java.lang.Class.forName0(Native Method)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/java.lang.Class.forName(Class.java:398)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at org.apache.kafka.common.utils.Utils.loadClass(Utils.java:419)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at org.apache.kafka.common.utils.Utils.newInstance(Utils.java:408)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at kafka.security.authorizer.AuthorizerUtils$.createAuthorizer(AuthorizerUtils.scala:31)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at kafka.server.KafkaConfig.createNewAuthorizer(KafkaConfig.scala:1689)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at kafka.server.KafkaServer.startup(KafkaServer.scala:386)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at kafka.Kafka$.main(Kafka.scala:109)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at kafka.Kafka.main(Kafka.scala)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: Caused by: java.lang.ClassNotFoundException: kafka.security.auth.Authorizer
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
Jul 27 07:32:01 kafka01 kafka-server-start.sh[892961]: ... 18 more
It looks like a library version conflict, maybe Ranger is compiled wrong
Do you have any ideas how to fix it?
UP: Apparently there is a version conflict I compiled the Ranger version from the wizard and there is not this error... It is a pity that the problem is not solved in the stable version of ranger 2.3 or 2.4