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
新增了兩個目錄:
將 bin 和 這兩個目錄壓縮一下,上傳到服務器
打包結束後,項目根目錄下會產生bin目錄和plugins目錄,其中bin目錄包含FlinkX的啓動腳本,plugins目錄下存放編譯好的數據同步插件包
啓動數據同步任務
以standalone模式啓動數據同步任務
-
準備好一個本地的flink
-
將打包好的
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} \
- 啓動
start.sh
- 結果
未實驗
- 以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
- 描述:執行模式,也就是flink集羣的工作模式
-
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
- 描述:yarnPer模式插件加載方式:
— 後續考慮圖形化