Flink CDC —部署模式

一、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

从发布页面下载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: mysql
 hostname: localhost
 port: 3306
 username: root
 password: 123456
 tables: app_db.\.*
 server-id: 5400-5404
 server-time-zone: UTC

sink:
 type: doris
 fenodes: 127.0.0.1:8030
 username: root
 password: ""

pipeline:
 name: Sync MySQL Database to Doris
 parallelism: 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-*

确保已设置 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。

发布页面下载 Flink CDC 的 tar 文件,然后提取该归档文件:

复制代码
tar -xzf flink-cdc-*.tar.gz

提取后的 flink-cdc 包含四个目录: binliblogconf

发布页面下载连接器 jar,并将其移动至 lib 目录中。 下载链接仅适用于稳定版本,SNAPSHOT 依赖项需要自己基于特定分支进行构建。

下面是一个用于整库同步的示例文件 mysql-to-doris.yaml

复制代码
################################################################################
# Description: Sync MySQL all tables to Doris
################################################################################
source:
 type: mysql
 hostname: localhost
 port: 3306
 username: root
 password: 123456
 tables: app_db.\.*
 server-id: 5400-5404
 server-time-zone: UTC

sink:
 type: doris
 fenodes: 127.0.0.1:8030
 username: root
 password: ""

pipeline:
 name: Sync MySQL Database to Doris
 parallelism: 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 模式集群。

相关推荐
qq_4639448619 分钟前
【Spark征服之路-2.2-安装部署Spark(二)】
大数据·分布式·spark
weixin_505154461 小时前
数字孪生在建设智慧城市中可以起到哪些作用或帮助?
大数据·人工智能·智慧城市·数字孪生·数据可视化
打码人的日常分享1 小时前
智慧城市建设方案
大数据·架构·智慧城市·制造
阿里云大数据AI技术4 小时前
ES Serverless 8.17王牌发布:向量检索「火力全开」,智能扩缩「秒级响应」!
大数据·运维·serverless
Mikhail_G4 小时前
Python应用变量与数据类型
大数据·运维·开发语言·python·数据分析
G皮T4 小时前
【Elasticsearch】映射:null_value 详解
大数据·elasticsearch·搜索引擎·映射·mappings·null_value
大霸王龙5 小时前
软件工程的软件生命周期通常分为以下主要阶段
大数据·人工智能·旅游
点赋科技6 小时前
沙市区举办资本市场赋能培训会 点赋科技分享智能消费新实践
大数据·人工智能
YSGZJJ6 小时前
股指期货技术分析与短线操作方法介绍
大数据·人工智能