Kafka connect с mysql для CD C: ошибка, прерывающая моментальный снимок из-за ошибки при последнем запуске 'UNLOCK TABLES' - PullRequest
0 голосов
/ 06 февраля 2020

Я пытался перехватить mysql изменения в потребителе консоли kafka, следуя этому учебнику

В mysql файле конфигурации my.cnf, я добавил server-id как 0 [найдено по этой команде: mysqld --verbose --help]. Таким образом, при создании соединителя следующим образом:

curl -i -X POST -H "Accept:application/json" \
    -H  "Content-Type:application/json" http://localhost:8083/connectors/ \
    -d '{
      "name": "mysql-connector8",
      "config": {
            "connector.class": "io.debezium.connector.mysql.MySqlConnector",
            "database.hostname": "localhost",
            "database.port": "3306",
            "database.user": "debezium",
            "database.password": "dbz",
            "database.server.id": 1,
            "database.server.name": "tigerhrm",
            "database.history.kafka.bootstrap.servers": "localhost:9092",
            "database.history.kafka.topic": "dbhistory.demo3" ,
            "include.schema.changes": "true",
            "tasks.max":1
       }
    }'

, когда я устанавливаю server.id = 0, как установлено в моем файле my.cnf, это выдает ошибку, но при изменении любого случайного числа соединитель создается, но дает последующая ошибка:

[2020-02-06 11: 58: 25,190] ИСПОЛЬЗОВАНИЕ ИНФОРМАЦИИ flyDB (io.debezium.connector. mysql .SnapshotReader: 803) [2020-02- 06 11: 58: 25,191] INFO CREATE TABLE oauth_access_token (token_id varchar (255) DEFAULT NULL, token blob, authentication_id varchar (255) NOT NULL, user_name varchar (255) DEFAULT NULL,
client_id varchar (255) DEFAULT NULL, authentication blob,
refresh_token varchar (255) DEFAULT NULL, ПЕРВИЧНЫЙ КЛЮЧ (authentication_id)) ДВИГАТЕЛЬ = InnoDB DEFAULT CHARSET = latin1 (io.debezium. соединитель. mysql .SnapshotReader: 803) [2020-02-06 11: 58: 25,192] ИНФОРМАЦИЯ Шаг 7: фиксация транзакции (io.debezium.connector. mysql .SnapshotReader: 611) [2020-02-06 11 : 58: 25,193] ИНФОРМАЦИЯ Шаг 8: снятие глобальной блокировки чтения для включения MySQL записи (io.debezium.connector. mysql .SnapshotReader: 625) [2020-02-06 11: 58: 25,193] ИНФОРМАЦИЯ Запись в MySQL таблицы мешают d в общей сложности 00: 00: 00.684 (io.debezium.connector. mysql .SnapshotReader: 635) [2020-02-06 11: 58: 25,193] ОШИБКА Сбой из-за ошибки: прерывание моментального снимка из-за ошибки при последней выполняется 'UNLOCK TABLES': com / mysql / jdbc / CharsetMapping (io.debezium.connector. mysql .SnapshotReader: 162) org. apache .kafka.connect.errors.ConnectException: com / mysql / jdbc / CharsetMapping at io.debezium.connector. mysql .AbstractReader.wrap (AbstractReader. java: 183) в io.debezium.connector. mysql .AbstractReader.failed (AbstractReader. java: 161) в io.debezium. соединитель. mysql .SnapshotReader.execute (SnapshotReader. java: 665) в java .lang.Thread.run (Thread. java: 748) Причина: java .lang.NoClassDefFoundError: com / mysql / jdbc / CharsetMapping на io.debezium.connector. mysql .MySqlValueConverters.charsetFor (MySqlValueConverters. java: 300) на io.debezium.connector. mysql .MySqlValueConverters.converters.contersters.verters.converters. ) в io.debezium.relational.TableSchemaBuilder.createValueConverterFor (TableSchemaBuilde r. java: 330) по адресу io.debezium.relational.TableSchemaBuilder.convertersForColumns (TableSchemaBuilder. java: 259) по адресу io.debezium.relational.TableSchemaBuilder.createKeyGenerator (TableSchemabemen64). .relational.TableSchemaBuilder.create (TableSchemaBuilder. java: 127) в io.debezium.connector. mysql .MySqlSchema.lambda $ applyDdl $ 3 (MySqlSchema. java: 365) в java .lang. forEach (Iterable. java: 75) в io.debezium.connector. mysql .MySqlSchema.applyDdl (MySqlSchema. java: 360) в io.debezium.connector. mysql .SnapshotReader.lambda $ выполнить $ 9 (SnapshotReader. java: 422) в io.debezium.jdb c .JdbcConnection.query (JdbcConnection. java: 389) в io.debezium.jdb c .JdbcConnection.query (JdbcConnection. * 1077 : 344) в io.debezium.connector. mysql .SnapshotReader.execute (SnapshotReader. java: 420) ... еще 1

, где oauth_access_token - это таблица в моей базе данных [существует несколько дБ]. Проверка состояния разъемов Я получил это:

curl -s "http://localhost:8083/connectors" |  jq '.[]' | xargs -I {mysql-connector} curl -s "http://localhost:8083/connectors/mysql-connector/status" | jq -c -M '[.name,.connector.state,.tasks[].state] |
join(":|:")' | column -s : -t | tr -d \" | sort
mysql-connector  |  RUNNING  |  FAILED
mysql-connector  |  RUNNING  |  FAILED
mysql-connector  |  RUNNING  |  FAILED
mysql-connector  |  RUNNING  |  FAILED
mysql-connector  |  RUNNING  |  FAILED
mysql-connector  |  RUNNING  |  FAILED
mysql-connector  |  RUNNING  |  FAILED
mysql-connector  |  RUNNING  |  FAILED

, последний столбец - это статус их задачи. и, следовательно, никаких изменений в базе данных не обнаружено в topi c, где должна быть создана topi c с именами таблиц, существующих в db. Как решить эту проблему?
Добавить: когда я удаляю эту таблицу из базы данных, возникает ошибка для другой таблицы и она продолжается! Все службы работают на моем локальном компьютере с Ubuntu. .
Любая помощь очень ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...