'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 |
|---|
