Не найден подходящий драйвер для jdb c - Oracle при соединении с Kafka Connect - PullRequest
4 голосов
/ 11 марта 2020

Я пытаюсь запустить исходный соединитель oracle в Kafka, используя Oracle jdbc8 (ojdbc8.jar) в автономном режиме. Я скачал файлы jdb c, а также файл ojdbc8.jar с веб-сайта Oracle. Я проверил это локально, и оно работало нормально, но в нашей тестовой среде выдает следующее сообщение об ошибке:

No suitable driver found for jdbc:oracle:thin:@x.x.x.x:yyyy:zzz for configuration Couldn't open connection to jdbc:oracle:thin:@x.x.x.x:yyyy:zzz

Полное сообщение об ошибке:

ERROR Failed to create job for xyz/xyz.properties (org.apache.kafka.connect.cli.ConnectStandalone:110)
[2020-03-11 13:13:32,085] ERROR Stopping after connector error (org.apache.kafka.connect.cli.ConnectStandalone:121)
java.util.concurrent.ExecutionException: org.apache.kafka.connect.runtime.rest.errors.BadRequestException: Connector configuration is invalid and contains the following 2 error(s):
Invalid value java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@x.x.x.x:1521:xyz for configuration Couldn't open connection to jdbc:oracle:thin:@x.x.x.x:1521:xyz
Invalid value java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@x.x.x.x:1521:xyz for configuration Couldn't open connection to jdbc:oracle:thin:@x.x.x.x:1521:xyz

Путь плагинов также хорошо, как он регистрирует все банки. Я попробовал некоторые исправления, которые я нашел в Интернете, которые включали размещение пути плагинов в переменной CLASSPATH. Не сработало, выкинуло ту же ошибку, что и выше. Я также могу пропинговать и набрать lnet IP и порт соответственно.

Мои конфигурации разъемов следующие:

name=oracle-jdbc-connect
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
connection.url=jdbc:oracle:thin:@x.x.x.x:yyyy:zzz
connection.user=xyz
connection.password=xyz
query=SELECT cast(ID AS NUMBER(7, 0)) AS ID, NAME FROM sch.tbl
mode=incrementing
incrementing.column.name=ID
topic.prefix=topic-test
schema.pattern=sch
numeric.mapping=best_fit
dialect.name=OracleDatabaseDialect
timestamp.delay.interval.ms=5000
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
decimal.handling.mode=double
include.schema.changes=false

Данный файл connection.user, указанный здесь, доступен только для чтения 'привилегии в Oracle хотя. Может ли это быть проблемой здесь?

файл connect-standalone.properties выглядит следующим образом:

key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
offset.storage.file.filename=/tmp/connect.offsets
offset.flush.interval.ms=10000
rest.host.name=x.x.x.x
rest.port=8877 # Some random port
plugin.path=/home/plugins/,/usr/share/java,/usr/local/share/kafka/plugins

Oracle Версия: 18 c
Kafka Версия: 2.3.0
Scala Версия: 2.12.2

plugins.path: / home / plugins

Структура пути плагинов : / home / plugins / connectors / [Папки, например, assets, docs, lib et c.], ojdbc8.jar.

Внутри / home / plugins / connectors / lib у меня есть файл kafka-connect-jdb c -5.4.0.jar.

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Ваш ojdbc8.jar должен быть в той же папке , что и JAR-файл Kafka Connect JDB C.

Так что, если Kafka Connect JDB C JAR находится в /home/plugins/connectors/lib, тогда добавьте туда ojdbc8.jar.

0 голосов
/ 11 марта 2020

Убедитесь, что plugin.path указывает на родительский фордер, где находятся ваши плагины. Например, мои плагины находятся в подкаталогах /opt/kafka/share/java/plugins, а мои

plugin.path=/opt/kafka/share/java/plugins

Убедитесь, что пользователь, выполняющий connect-standalone, который, как я полагаю, вы используете в конфигурации, имеет r / w права доступа к каталогам и файлам плагина.

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