FlinkX 部署

FlinkX 部署

運行概述

執行環境

  • Java: JDK8及以上
  • Flink集羣: 1.4及以上(單機模式不需要安裝Flink集羣)
  • 操作系統:理論上不限,但是目前只編寫了shell啓動腳本,用戶可以可以參考shell腳本編寫適合特定操作系統的啓動腳本。

運行模式

  • 單機模式:對應Flink集羣的單機模式
  • standalone模式:對應Flink集羣的分佈式模式
  • yarn模式:對應Flink集羣的yarn模式
  • yarnPer模式: 對應Flink集羣的Per-job模式

源碼下載

git clone https://github.com/DTStack/flinkx.git

安裝依賴

call mvn install:install-file -DgroupId=com.ibm.db2 -DartifactId=db2jcc -Dversion=3.72.44 -Dpackaging=jar -Dfile=../jars/db2jcc-3.72.44.jar

call mvn install:install-file -DgroupId=com.github.noraui -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar -Dfile=../jars/ojdbc8-12.2.0.1.jar

call mvn install:install-file -DgroupId=com.esen.jdbc -DartifactId=gbase -Dversion=8.3.81.53 -Dpackaging=jar -Dfile=../jars/gbase-8.3.81.53.jar

call mvn install:install-file -DgroupId=dm.jdbc.driver -DartifactId=dm7 -Dversion=18.0.0 -Dpackaging=jar -Dfile=../jars/Dm7JdbcDriver18.jar

打包

mvn clean install -DskipTests

image-20200526223725241

新增了兩個目錄:

image-20200526223750179

將 bin 和 這兩個目錄壓縮一下,上傳到服務器

打包結束後,項目根目錄下會產生bin目錄和plugins目錄,其中bin目錄包含FlinkX的啓動腳本,plugins目錄下存放編譯好的數據同步插件包

啓動數據同步任務

以standalone模式啓動數據同步任務

  1. 準備好一個本地的flink

  2. 將打包好的flinkx.jar 放入flink的lib

在這裏插入圖片描述
2. 編寫start.sh

  • pluginRoot指向打包生成的plugin目錄
  • flink指向本地的flink集羣的配置,或者直接拷貝過來一份
bin/flinkx -mode standalone \
            -job /opt/flinkx/examples/mongodb_to_mysql.json \
            -pluginRoot /opt/flinkx/syncplugins \
            -flinkconf /opt/flink-1.10.0/conf \
            -confProp {\"flink.checkpoint.interval\":60000} \
  1. 啓動start.sh
  2. 結果
    在這裏插入圖片描述

未實驗

  • 以yarn模式啓動數據同步任務
bin/flinkx -mode yarn \
            -job /Users/softfly/company/flinkx/jobs/mysql_to_mysql.json \
            -plugin /opt/dtstack/flinkplugin/syncplugin \
            -flinkconf /opt/dtstack/myconf/conf \
            -yarnconf /opt/dtstack/myconf/hadoop \
            -confProp "{"flink.checkpoint.interval":60000}" \
            -s /flink_checkpoint/0481473685a8e7d22e7bd079d6e5c08c/chk-*
  • 以perjob模式啓動數據同步任務
bin/flinkx -mode yarnPer \
            -job /test.json \
            -pluginRoot /opt/dtstack/syncplugin \
            -flinkconf /opt/dtstack/flink-1.8.1/conf \
            -yarnconf /opt/dtstack/hadoop-2.7.3/etc/hadoop \
            -flinkLibJar /opt/dtstack/flink-1.8.1/lib \
            -confProp {\"flink.checkpoint.interval\":200000} \
            -queue c -pluginLoadMode classpath

命令行參數選項

  • model

    • 描述:執行模式,也就是flink集羣的工作模式
      • local: 本地模式
      • standalone: 獨立部署模式的flink集羣
      • yarn: yarn模式的flink集羣,需要提前在yarn上啓動一個flink session,使用默認名稱"Flink session cluster"
      • yarnPer: yarn模式的flink集羣,單獨爲當前任務啓動一個flink session,使用默認名稱"Flink per-job cluster"
    • 必選:否
    • 默認值:local
  • job

    • 描述:數據同步任務描述文件的存放路徑;該描述文件中使用json字符串存放任務信息。
    • 必選:是
    • 默認值:無
  • pluginRoot

    • 描述:插件根目錄地址,也就是打包後產生的pluginRoot目錄。
    • 必選:是
    • 默認值:無
  • flinkconf

    • 描述:flink配置文件所在的目錄(單機模式下不需要),如/opt/dtstack/flink-1.8.1/conf
    • 必選:否
    • 默認值:無
  • yarnconf

    • 描述:Hadoop配置文件(包括hdfs和yarn)所在的目錄(單機模式下不需要),如/hadoop/etc/hadoop
    • 必選:否
    • 默認值:無
  • flinkLibJar

    • 描述:flink lib所在的目錄(單機模式下不需要),如/opt/dtstack/flink-1.8.1/lib
    • 必選:否
    • 默認值:無
  • confProp

    • 描述:flink相關參數,如{“flink.checkpoint.interval”:200000}
    • 必選:否
    • 默認值:無
  • queue

    • 描述:yarn隊列,如default
    • 必選:否
    • 默認值:無
  • pluginLoadMode

    • 描述:yarnPer模式插件加載方式:
      • classpath:提交任務時不上傳插件包,需要在yarn-node節點pluginRoot目錄下部署插件包,但任務啓動速度較快
      • shipfile:提交任務時上傳pluginRoot目錄下部署插件包的插件包,yarn-node節點不需要部署插件包,任務啓動速度取決於插件包的大小及網絡環境
    • 必選:否
    • 默認值:classpath

— 後續考慮圖形化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章