[TOC]
<br >
# **JDBC Connector**
*****
<br >
## **安裝 JDBC Connector**
1. 在 [Confluent Hub](https://www.confluent.io/hub/confluentinc/kafka-connect-jdbc) 上下載 ZIP 文件。
2. 解壓縮 ZIP 文件并且將內容復制到你想要的目錄。例如,你可以創建一個名為`share/kafka/plugins/`目錄,并將 Connector 插件內容復制到該目錄下。
```shell
# mkdir -p /usr/local/share/kafka/plugins/
# unzip confluentinc-kafka-connect-jdbc-5.4.0.zip
# chown -R kafka:oper /usr/local/share/kafka/
```
3. 將這個路徑添加到你的 Kafka Connect 屬性文件中,Kafka Connect 使用插件路徑查找插件,一個插件路徑是一個以逗號分隔的目錄列表。
```
$ vim config/connect-distributed.properties
plugin.path=/usr/local/share/kafka/plugins/confluentinc-kafka-connect-jdbc-5.4.0/lib
```
4. 使用配置文件啟動 Connet Worker,Connect 將通過這些插件發現所有的連接器。
```shell
$ nohup bin/connect-distributed.sh config/connect-distributed.properties &
... ...
[2020-01-19 15:09:33,463] INFO [Worker clientId=connect-1, groupId=connect-cluster] Starting connectors and tasks using config offset 35 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1000)
[2020-01-19 15:09:33,463] INFO [Worker clientId=connect-1, groupId=connect-cluster] Finished starting connectors and tasks (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1021)
```
5. 在運行 Connect Worker 的每臺機器上重復這些步驟,以保證每個 Worker 上的連接器都已經被激活。
6. 驗證插件是否被成功加載。
```shell
$ curl http://localhost:8083/connector-plugins | jq
[
{
"class": "io.confluent.connect.jdbc.JdbcSinkConnector",
"type": "sink",
"version": "5.4.0"
},
{
"class": "io.confluent.connect.jdbc.JdbcSourceConnector",
"type": "source",
"version": "5.4.0"
},
{
"class": "org.apache.kafka.connect.file.FileStreamSinkConnector",
"type": "sink",
"version": "2.3.1"
},
{
"class": "org.apache.kafka.connect.file.FileStreamSourceConnector",
"type": "source",
"version": "2.3.1"
}
]
```
> 你應該可以看到`JdbcSourceConnector`、`JdbcSinkConnector`兩個 Connector 插件
7. 列出所有活動的 Connector:
```
$ curl localhost:8083/connectors
[]
```
<br >
## **安裝 JDBC 驅動程序**
1. 查找適合的 JDBC 4.0 的驅動 JAR 包。
* [JDBC drivers for Oracle](https://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.html)
2. 將這些 JAR 包移動到`share/java/kafka-connect-jdbc`目錄。
```shell
# mkdir -p /usr/local/share/java/kafka-connect-jdbc/
# chown -R lemon:oper /usr/local/share/java/kafka-connect-jdbc/
```
3. 設置環境變量:
```
$ export CLASSPATH=.:/usr/local/share/java/kafka-connect-jdbc/ojdbc8.jar
```
4. 重啟 Connect Worker 節點。例如:
```shell
$ jps -l
87537 org.apache.kafka.connect.cli.ConnectDistributed
$ kill -9 87537
$ nohup bin/connect-distributed.sh config/connect-distributed.properties &
```
5. 驗證插件是否被成功加載。
```shell
$ curl http://localhost:8083/connector-plugins | jq
```