'java.lang.NoClassDefFoundError debezium connector

I am running kafka-connect in distributed mode. I have set up the plugin.path to where I installed debezium plugin.

I am getting java.lang.NoClassDefFoundError exception.

Properties file:

bootstrap.servers=10.X.X.X:9092
group.id=connect-cluster
key.converter=io.confluent.connect.avro.AvroConverter
key.converter.schema.registry.url=http://localhost:8081
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://localhost:8081
config.storage.topic=connect-configs
offset.storage.topic=connect-offsets
status.storage.topic=connect-statuses
config.storage.replication.factor=1
offset.storage.replication.factor=1
status.storage.replication.factor=1
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
plugin.path=/usr/share/java,/root/mysql-plugin

Connector config:

{
  "name": "cdc.fkw.supply.payments_team5.payment.connector",
  "config": {
    "connector.class": "io.debezium.connector.mysql.MySqlConnector",
    "snapshot.locking.mode": "minimal",
    "database.user": "cdc_user",
    "tasks.max": "1",
    "database.history.kafka.bootstrap.servers": "1XXXXXXXXX:9092",
    "database.history.kafka.topic": "history.cdc.fkw.supply.payments_team5.payment",
    "database.server.name": "cdc.fkw.supply.payments_team5.payment",
    "heartbeat.interval.ms": "5000",
    "database.port": "3306",
    "table.whitelist": "payment.refund",
    "database.hostname": "snail-XXXXXX.in",
    "database.password": "XXXXXX",
    "database.history.kafka.recovery.poll.interval.ms": "5000",
    "name": "cdc.fkw.supply.payments_team5.payment.connector",
    "database.history.skip.unparseable.ddl": "true",
    "errors.tolerance": "all",
    "database.whitelist": "payment",
    "snapshot.mode": "when_needed"
  },

After deploying a connector I get the following error,

"org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.\n\tat io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:115)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: \n\tat io.debezium.pipeline.EventDispatcher$BufferingSnapshotChangeRecordReceiver.changeRecord(EventDispatcher.java:450)\n\tat io.debezium.pipeline.EventDispatcher$1.changeRecord(EventDispatcher.java:173)\n\tat io.debezium.relational.RelationalChangeRecordEmitter.emitReadRecord(RelationalChangeRecordEmitter.java:89)\n\tat io.debezium.relational.RelationalChangeRecordEmitter.emitChangeRecords(RelationalChangeRecordEmitter.java:49)\n\tat io.debezium.pipeline.EventDispatcher.dispatchSnapshotEvent(EventDispatcher.java:162)\n\tat io.debezium.relational.RelationalSnapshotChangeEventSource.createDataEventsForTable(RelationalSnapshotChangeEventSource.java:380)\n\tat io.debezium.relational.RelationalSnapshotChangeEventSource.createDataEvents(RelationalSnapshotChangeEventSource.java:309)\n\tat io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:129)\n\tat io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:76)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:153)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:135)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:108)\n\t... 5 more\nCaused by: java.lang.NoClassDefFoundError: \n\t... 17 more\n"

Version:

root@fkw-ixion-none-8454604:~# dpkg -l | grep kafka
ii  confluent-kafka-2.11                   1.0.0-1                           all          publish-subscribe messaging rethought as a distributed commit log
ii  confluent-kafka-connect-elasticsearch  4.0.0-1                           all          Kafka Connect connector for copying data between Kafka and Elasticsearch
ii  confluent-kafka-connect-hdfs           4.0.0-1                           all          Kafka Connect connector for copying data between Kafka and Hadoop HDFS
ii  confluent-kafka-connect-jdbc           4.0.0-1                           all          Kafka Connect connector for JDBC-compatible databases
ii  confluent-kafka-connect-replicator     4.0.0-1                           all          Kafka Connect connector for replicating topics between Kafka clusters
ii  confluent-kafka-connect-s3             4.0.0-1                           all          Kafka Connect S3 connector for copying data between Kafka and
ii  confluent-kafka-connect-storage-common 4.0.0-1                           all          Kafka Connect Storage Common contains packages used by storage
ii  confluent-kafka-rest                   4.0.0-1                           all          A REST proxy for Kafka

Java:

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

Jars:

debezium-debezium-connector-mysql-1.8.1/lib/antlr4-runtime-4.8.jar
debezium-debezium-connector-mysql-1.8.1/lib/debezium-api-1.8.1.Final.jar
debezium-debezium-connector-mysql-1.8.1/lib/debezium-connector-mysql-1.8.1.Final.jar
debezium-debezium-connector-mysql-1.8.1/lib/debezium-core-1.8.1.Final.jar
debezium-debezium-connector-mysql-1.8.1/lib/debezium-ddl-parser-1.8.1.Final.jar
debezium-debezium-connector-mysql-1.8.1/lib/failureaccess-1.0.1.jar
debezium-debezium-connector-mysql-1.8.1/lib/guava-30.0-jre.jar
debezium-debezium-connector-mysql-1.8.1/lib/mysql-binlog-connector-java-0.25.4.jar
debezium-debezium-connector-mysql-1.8.1/lib/mysql-connector-java-8.0.27.jar


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source