部署Kafka:ZooKeeper模式

  • 文檔創建者:Roxy
  • 編輯次數:45
  • 最近更新:Nikozhan 于 2025-07-16
  • 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


    附件列表


    主題: 實時管道
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!