confluentinc / cp-docker-images

[DEPRECATED] Docker images for Confluent Platform.
Apache License 2.0
1.14k stars 704 forks source link

Kafka connect JDBC - Oracle drivers not found #632

Closed damien-malescot closed 5 years ago

damien-malescot commented 5 years ago

Hello,

I'm trying to use kafka-cp docker image with a oracle jdbc drives, but each times i get on error with "no suitable drivers found"

My docker-compose file for kafka-connect is :

  connect:
    container_name: kafka-connect-poc
    image: confluentinc/cp-kafka-connect
    depends_on:
      - kafka
      - registry
    restart: always
    volumes:
     - ./libs/ojdbc8.jar:/usr/share/java/kafka-connect-jdbc/ojdbc8.jar
    ports:
      - "8083:8083"
    environment:
        CONNECT_BOOTSTRAP_SERVERS: 'kafka:9092'
        CONNECT_REST_ADVERTISED_HOST_NAME: connect
        CONNECT_REST_PORT: 8083
        CONNECT_GROUP_ID: compose-connect-group
        CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs
        CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 2
        CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets
        CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 2
        CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status
        CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 2
        CONNECT_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
        CONNECT_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
        CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
        CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
        CONNECT_ZOOKEEPER_CONNECT: "zookeeper:2181"
        CONNECT_PLUGIN_PATH: /etc/kafka-connect/jars, /usr/share/java/kafka-connect-jdbc

So, with compose i put oracle drivers in jdbc kafka plugins and drivers is in place :

root@052a88497647:/usr/share/java/kafka-connect-jdbc# ls -l /usr/share/java/kafka-connect-jdbc/
total 14416
-rw-r--r-- 1 root root   20437 Nov  6 00:26 audience-annotations-0.5.0.jar
-rw-r--r-- 1 root root   20902 Nov  6 00:26 common-utils-5.0.1.jar
-rw-r--r-- 1 root root   87325 Nov  6 00:26 jline-0.9.94.jar
-rw-r--r-- 1 root root  317816 Nov  6 00:26 jtds-1.3.1.jar
-rw-r--r-- 1 root root  213628 Nov  6 00:26 kafka-connect-jdbc-5.0.1.jar
-rw-r--r-- 1 root root 1292696 Nov  6 00:26 netty-3.10.6.Final.jar
**-rwxrwx--- 1 root  994 4036257 Nov 14 10:44 ojdbc8.jar**
-rw-r--r-- 1 root root  658466 Nov  6 00:26 postgresql-9.4-1206-jdbc41.jar
-rw-r--r-- 1 root root   41203 Nov  6 00:26 slf4j-api-1.7.25.jar
-rw-r--r-- 1 root root 7064881 Nov  6 00:26 sqlite-jdbc-3.25.2.jar
-rw-r--r-- 1 root root   74798 Nov  6 00:26 zkclient-0.10.jar
-rw-r--r-- 1 root root  906708 Nov  6 00:26 zookeeper-3.4.13.jar

But when i want to create a connector like this :

{  
   "name":"poc-jdbc",
   "config":{  
      "connector.class":"io.confluent.connect.jdbc.JdbcSourceConnector",
      "tasks.max":1,
      "connection.url":"jdbc:oracle:thin:<USER>/<PASSWORD>@<HOST>:<PORT>:<SERVICE>",
      "mode":"timestamp",
      "table.whitelist" : "MOUVEMENT",
      "timestamp.column.name":"LAST_MAJ",
      "topic.prefix":"poc-jdbc",
      "poll.interval.ms":10000
   }
}

I just get an error : Invalid value java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:...

Any suggestions ?

Thx

OneCricketeer commented 5 years ago

Can you please try CONNECT_PLUGIN_PATH:"/usr/share/java/,/etc/kafka-connect/jars"

theblazehen commented 5 years ago

@damien-malescot did you have any luck?

damien-malescot commented 5 years ago

Hi,

This work for me (with only jdbc connector) :+1:

  connect:
    container_name: gtec-gems-connect
    image: confluentinc/cp-kafka-connect
    depends_on:
      - kafka
      - registry
    restart: always
    volumes:
     - ./libs/ojdbc8.jar:/etc/kafka-connect/jars/ojdbc8.jar
    ports:
      - "8083:8083"
    environment:
        CONNECT_BOOTSTRAP_SERVERS: 'kafka:9092'
        CONNECT_REST_ADVERTISED_HOST_NAME: connect
        CONNECT_REST_PORT: 8083
        CONNECT_GROUP_ID: compose-connect-group
        CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs
        CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 2
        CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets
        CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 2
        CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status
        CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 2
        CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter
        CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: http://registry:8081
        CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
        CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://registry:8081
        CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
        CONNECT_INTERNAL_KEY_CONVERTER_SCHEMA_ENABLE: "false"
        CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
        CONNECT_INTERNAL_VALUE_CONVERTER_SCHEMA_ENABLE: "false"
        CONNECT_ZOOKEEPER_CONNECT: "zookeeper:2181"
        CONNECT_VALIDATE_NON_NULL: "false"
        CONNECT_PLUGIN_PATH: /usr/share/java/kafka-connect-jdbc
MaxPrimeAERY commented 2 years ago

Can you please try CONNECT_PLUGIN_PATH:"/usr/share/java/,/etc/kafka-connect/jars"

Saved my day. Again. Thank you.