最新历史版本 :部署Kafka:ZooKeeper模式 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

FineDataLink 支援使用 Kafka 作為資料同步的中間軟體,暫存來源資料庫中的資料,便於目標資料庫寫入資料,實現實時資料同步。

本文介紹 Kafka ZooKeeper 模式的部署方案,以便後續 配置管道任務

注1:此範例為 Linux 系統下部署 Kafka;Kafka 建議安裝在 Linux 系統中(Kafka 也支援安裝在 Windows 中,但效能會受到限制,僅做示範使用,不建議用於生産環境 )。

注2:Kafka KRaft 模式的部署方案請參見:部署Kafka:KRaft模式

注3:目前産品不支援 Kafka 叢集。

2. KRaft 模式與 ZooKeeper 模式說明编辑

3. 前提條件编辑

  • Kafka 運作需要 Java 環境,因此需要確定伺服器中已經指定了可使用的 Java 環境(指定 JAVA_HOME環境變數)。注:JDK 版本不能低於 1.8。

注:若 kafka 和 FineDataLink 部署在同一個伺服器上,可以使用同一個 JAVA 環境,操作步驟如下:

在 etc/profile 檔案中配置 Java環境,增加如下內容:

注:下面程式碼中%FineDataLink%取代為實際 FineDataLink 安裝路徑。

export JAVA_HOME=%FineDataLink%/jdk/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar

並執行source /etc/profile儲存,使修改立即生效。

4. 操作步驟编辑

icon提示:
本文範例提供的 Kafka 安裝包版本為 3.5.1;小於等於 3.9.0 的 Kafka 版本,檢查出編號為CVE-2025-27817、CVE-2025-27818、CVE-2025-27819 的非高危漏洞,解決方案如下:

1)FineDataLink為單機部署:

  • 方案一:升級版本到 4.2.7.2 及之後版本即可;新使用者建議直接部署最新版本的 FineDataLink 工程。

  • 方案二:若不想升級 FineDataLink 版本,在工程安裝目錄/bin/catalina.sh 中新增:JAVA_OPTS='-Dorg.apache.kafka.disallowed.login.modules
    =com.sun.security.auth.module.JndiLoginModule,com.ibm.
    security.auth.module.LdapLoginModule,org.apache.kafka.
    common.security.oauthbearer.OAuthBearerLoginModule'

重啟 FineDataLink 工程即可。

2)OPS 部署的 FineDataLink,升級到 4.2.7.2 及之後版本的鏡像

點選下載安裝包:Kafka 安裝包

4.1 解壓安裝包

上傳 kafka 安裝包。

注:可以將 Kafka 安裝在任意Linux 環境中,如果Kafka 和FDL不在一台伺服器上,Kafka就需要進行一些單獨配置實現 Kafka 的跨伺服器存取,可參見 增加配置

使用命令 tar zxvf kafka安裝包檔案名稱.tgz 解壓安裝包,例如如下圖所示:


注:(請勿直接在windows環境下解壓後,進行檔案上傳,這樣會造成檔案被修改,常見報錯:/bin/bash^M: 壞的解譯器: 沒有那個檔案或目錄)

4.2 修改 Kafka 儲存資料的目錄

注:使用者也可忽略本節內容,使用預設資料儲存位置。

Kafka 在使用時需要儲存資料到指定資料夾,因此需要建立資料夾用來存放暫存在 Kafka 中的資料。

範例在 /data 目錄下建立:kafka-logs,如下圖所示:

注:建議資料夾建立在伺服器中磁碟空間相對大的位置,資料夾位置可自行設定。


開啟 Kafka 安裝目錄下的 config 檔案中的 server.properties 檔案,找到 log.dirs=,修改資料儲存位置,把等於號後邊的值取代為建立好的給 Kafka 儲存資料的目錄,修改之後儲存。如下圖所示:

注:此處路徑為範例,使用者可根據實際情況設定儲存資料目錄位置。


4.3 修改 listeners

如果 kafka 和 FDL 不在同一個伺服器,則需要修改 server.properties 檔案的 listeners。詳情請參見:增加配置

若 kafka 和 FDL 在同一個伺服器,忽略本節內容。

注:Kafka 配置中無需指定 topic,FineDataLink 會自動建立,每張表對應一個topic。

4.4 修改 zookeeper 資料儲存目錄

範例在 /data 目錄下建立:zookeeper 資料夾,如下圖所示:

注:資料夾位置可自行設定。


開啟 Kafka 安裝目錄下的 config 檔案中的 zookeeper.properties 檔案,找到 dataDir=,修改資料儲存位置,把等於號後邊的值取代為建立好的給 Kafka 儲存資料的目錄,修改之後儲存。如下圖所示:


4.5 啟動 Kafka

1)啟動 zookeeper

由於 kafka 服務依賴於zookeeper 服務,使用 kafka 自帶的 zookeeper,進入 Kafka 目錄,使用命令:cd /.../kafka_2.13-2.8.1

執行命令啟動 zookeeper。

nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties > ./zk.log 2>&1 & 

2)查看 zookeeper 運作狀態

執行命令 ps -ef|grep zookeeper 查看是否啟動成功。 若顯示類似如下 18300 的進程號的記錄,則表示啟動成功。


3)啟動 Kafka

執行 nohup ./bin/kafka-server-start.sh ./config/server.properties >./kafka.log 2>&1 & 

4)查看 Kafka 運作狀態

執行命令 ps -ef|grep kafka 查看是否啟動成功。 若顯示類似如下 18300 的進程號的記錄,則表示啟動成功。


注:關閉 Kafka 步驟為先關閉 Kafka,再關閉 zookeeper,命令詳情見本文第5節。

5. 後續步驟编辑

安裝部署好 Kafka 後,即可在 FinedataLink 中配置傳輸佇列

6. 維運命令编辑

注1:關閉 Kafka 步驟為先關閉 Kafka,再關閉 zookeeper。

注2:重啟 Kafka 前,需要先手動暫停管道任務,重啟 Kafka 後,再手動重啟管道任務,否則管道任務會有異常。

6.1 關閉 Kafka

進入 kafka目錄下,執行 bin/kafka-server-stop.sh

6.2 關閉 zookeeper

進入 kafka 目錄下,執行bin/zookeeper-server-stop.sh