一、Standalone 模式
?獨立模式是Flink最簡單的部署模式。本簡短指南將向您展示如何下載最新穩定版本的Flink,安裝和運行它。
您還將運行一個示例Flink CDC作業,并在web UI中查看它。
1、準備
Flink在所有類似UNIX的環境中運行,即Linux、Mac OS X和Cygwin(用于Windows)。
您可以參考概述來檢查支持的版本,并下載Flink的二進制版本,然后提取存檔:
tar -xzf flink-*.tgz
您應該將FLINK_HOME環境變量設置為:
export FLINK_HOME=/path/flink-*
2、啟動和停止本地群集
要啟動本地集群,請運行Flink附帶的bash腳本:
cd /path/flink-*
./bin/start-cluster.sh
Flink現在作為后臺進程運行。可以使用以下命令檢查其狀態:
ps aux | grep flink
您應該能夠導航到localhost:8081上的web UI,以查看Flink儀表板,并查看集群是否已啟動并正在運行。
要快速停止集群和所有正在運行的組件,可以使用提供的腳本:
./bin/stop-cluster.sh
3、配置Flink CDC
從發布頁面下載Flink CDC的tar文件,然后解壓縮存檔:
tar -xzf flink-cdc-*.tar.gz
提取的flink cdc包含四個目錄:bin、lib、log和conf。
從發布頁面下載連接器jar,并將其移動到lib目錄。
下載鏈接僅適用于穩定版本,SNAPSHOT依賴項需要根據特定的分支自行構建。
4、提交Flink CDC Job
下面是將整個數據庫mysql-to-doris.yaml同步的示例文件:
################################################################################
# Description: Sync MySQL all tables to Doris
################################################################################
source:type: mysqlhostname: localhostport: 3306username: rootpassword: 123456tables: app_db.\.*server-id: 5400-5404server-time-zone: UTCsink:type: dorisfenodes: 127.0.0.1:8030username: rootpassword: ""pipeline:name: Sync MySQL Database to Dorisparallelism: 2
?最后,使用Cli將作業提交到Flink獨立集群。
cd /path/flink-cdc-*
./bin/flink-cdc.sh mysql-to-doris.yaml
提交成功后,退貨信息如下:
Pipeline has been submitted to cluster.
Job ID: ae30f4580f1918bebf16752d4963dc54
Job Description: Sync MySQL Database to Doris
然后,您可以通過Flink Web UI找到一個名為Sync MySQL Database to Doris的作業。
二、YARN 模式
Apache Hadoop YARN?是眾多數據處理框架所青睞的資源提供者。 Flink 服務被提交至 YARN 的 ResourceManager,后者會在由 YARN NodeManager 管理的機器上生成 container。Flink 將其 JobManager 和 TaskManager 實例部署到這些 container 中。
Flink 可以根據在 JobManager 上運行的作業處理所需的 slot 數量,動態分配和釋放 TaskManager 資源。
1、準備工作?
此“入門指南”部分假定從 2.10.2 版本起具備功能可用的 YARN 環境。YARN 環境可以通過像亞馬遜 EMR、谷歌云 DataProc 等服務或 Cloudera 等產品來搭建。? 不建議在本地或集群上手動設置 YARN 環境來完成本入門教程。
- 通過運行?
yarn top
?無錯誤信息顯示以確保你的 YARN 集群準備好接受 Flink 應用程序的提交。 - 從下載頁面下載最新的 Flink 發行版并解壓縮。
- 一定要確保設置了?
HADOOP_CLASSPATH
?環境變量(可以通過運行?echo $HADOOP_CLASSPATH
?來檢查)。如果沒有,請使用以下命令進行設置。
export HADOOP_CLASSPATH=`hadoop classpath`
2、Session 模式?
Flink 在所有類 UNIX 的環境中運行,即在 Linux、Mac OS X 以及(針對 Windows 的)Cygwin 上運行。 你可以參考概覽來檢查支持的版本并下載Flink二進制版本, 然后解壓文件:
tar -xzf flink-*.tgz
你需要設置?FLINK_HOME
?環境變量,比如:
export FLINK_HOME=/path/flink-*
2.1 在 YARN 啟動一個Flink Session?
確保已設置?HADOOP_CLASSPATH
?環境變量,即可在 YARN 會話啟動一個 Flink 任務:
# we assume to be in the root directory of
# the unzipped Flink distribution# export HADOOP_CLASSPATH
export HADOOP_CLASSPATH=`hadoop classpath`# Start YARN session
./bin/yarn-session.sh --detached# Stop YARN session (replace the application id based
# on the output of the yarn-session.sh command)
echo "stop" | ./bin/yarn-session.sh -id application_XXXXX_XXX
啟動 Yarn 會話之后,即可通過命令輸出最后一行打印的 URL 或者 YARN ResourceManager Web UI 訪問 Flink Web UI。
然后,需要向 flink-conf.yaml 添加一些配置:
rest.bind-port: {{REST_PORT}}
rest.address: {{NODE_IP}}
execution.target: yarn-session
yarn.application.id: {{YARN_APPLICATION_ID}}
{{REST_PORT}} 和 {{NODE_IP}} 需要替換為 JobManager Web 接口的實際值,{{YARN_APPLICATION_ID}} 則需替換為 Flink 實際的 Yarn 應用 ID。
2.2 配置 Flink CDC?
從發布頁面下載 Flink CDC 的 tar 文件,然后提取該歸檔文件:
tar -xzf flink-cdc-*.tar.gz
提取后的?flink-cdc
?包含四個目錄:?bin
,lib
,log
?和?conf
。
從發布頁面下載連接器 jar,并將其移動至?lib
?目錄中。 下載鏈接僅適用于穩定版本,SNAPSHOT 依賴項需要自己基于特定分支進行構建。
2.3 提交 Flink CDC 任務?
下面是一個用于整庫同步的示例文件?mysql-to-doris.yaml
:
################################################################################
# Description: Sync MySQL all tables to Doris
################################################################################
source:type: mysqlhostname: localhostport: 3306username: rootpassword: 123456tables: app_db.\.*server-id: 5400-5404server-time-zone: UTCsink:type: dorisfenodes: 127.0.0.1:8030username: rootpassword: ""pipeline:name: Sync MySQL Database to Dorisparallelism: 2
你可以按需修改配置文件。 最后,通過 Cli 將作業提交至 Flink Yarn Session 集群。
cd /path/flink-cdc-*
./bin/flink-cdc.sh mysql-to-doris.yaml
提交成功將返回如下信息:
Pipeline has been submitted to cluster.
Job ID: ae30f4580f1918bebf16752d4963dc54
Job Description: Sync MySQL Database to Doris
你可以通過 Flink Web UI 找到一個名為?Sync MySQL Database to Doris
?的作業。
請注意,目前還不支持提交至 application 模式集群和 per-job 模式集群。