Kafka Connect JDBC Source OutOfMemoryError - PullRequest
0 голосов
/ 29 мая 2018

Я выполняю следующее задание с Confluent JDBC-Source-коннектором :

{
    "name": "jobName",
    "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
        "mode": "timestamp",
        "timestamp.column.name": "dateColumn",
        "topic.prefix": "connect-test.",
        "connection.password": "pw",
        "tasks.max": "1",
        "connection.user": "un",
        "poll.interval.ms": "300000",
        "name": "jobName",
        "connection.url": "jdbc:sqlserver://serverName;Database=dbName;user=un;password=pw",
        "table.whitelist": "tableName"
    }
}

У меня есть аналогичное задание Kafka-Connect, успешно запущенное на той же БД и стот же пользователь, но с другой меньшей таблицей.Таким образом, проблема не в подключении.

В журнале на сервере Kafka-connect, на котором выполняется задание, я вижу следующее:

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "KafkaBasedLog Work Thread - connect-configs"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "kafka-coordinator-heartbeat-thread | connect-cluster"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "kafka-producer-network-thread | producer-1"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "KafkaBasedLog Work Thread - connect-offsets"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "kafka-producer-network-thread | producer-3"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-4-thread-1"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "kafka-producer-network-thread | producer-2"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "KafkaBasedLog Work Thread - connect-status"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "DistributedHerder"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-1-thread-5"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "org.eclipse.jetty.server.session.HashSessionManager@2c243a24Timer"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "qtp1434297727-21"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "qtp1434297727-26"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "qtp1434297727-27"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "kafka-producer-network-thread | producer-14"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "kafka-producer-network-thread | producer-15"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-1-thread-4"

Итак, не так уж много.Сервер, на котором выполнялось это задание, теперь не отвечает и не отвечает на вызовы REST.Есть идеи?

1 Ответ

0 голосов
/ 30 мая 2018

Вам необходимо

  1. Войдите в систему каждого подключенного работника через SSH или, если хотите,
  2. Принудительно остановите процесс Kafka Connect
  3. export KAFKA_HEAP_OPTS к чему-либобольше, чем значения по умолчанию на каждом сервере, на котором работает Kafka Connect.Например KAFKA_HEAP_OPTS="-Xms512M -Xmx4G".Если предположить, что Linux, то лучшим местом будет файл bashrc для пользователя kafka.
  4. Запустите connect-distributed снова как пользователь, которого вы экспортировали переменную для

Вы можете дополнительно захотеть экспортировать больше значений для включения JMX для показа.Таким образом, вы можете отслеживать процесс до его сбоя

...