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

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-*

确保已设置 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 包含四个目录: binliblog 和 conf

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

下面是一个用于整库同步的示例文件 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 模式集群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/web/83507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day029-Shell自动化编程-计算与while循环

文章目录 1. read 交互式初始化变量1.1 案例-安装不同的软件1.2 案例-比较大小 2. 计算2.1 bc2.2 awk2.3 expr2.4 let2.5 案例-计算内存的空闲率2.6 案例-检查域名过期时间和https证书过期时间 3. 循环3.1 循环控制语句3.2 for循环-c语言格式3.3 while循环3.3.1 案例-猜数字3.3…

华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio打造AingDesk AI聊天助手

华为云FlexusDeepSeek征文 | 基于华为云ModelArts Studio打造AingDesk AI聊天助手 引言一、ModelArts Studio平台介绍华为云ModelArts Studio简介ModelArts Studio主要特点 二、安装AingDesk应用AingDesk应用介绍下载地址安装AingDesk工具 三、开通DeepSeek-R1-0528商用服务访问…

深度解析Git错误:`fatal: detected dubious ownership in repository` 的根源与解决方案

如果你是在使用自己的移动硬盘(U盘)操作项目时遇到的这个问题直接执行git config --global --add safe.directory X:/path即可,只要你的移动硬盘(U盘)没有病毒就不会有安全问题。 深度解析Git错误:fatal: d…

基于Spring Boot的校园社区平台设计与实现

目录 一.🦁前言二.🦁开源代码与组件使用情况说明三.🦁核心功能1. ✅算法设计2. ✅Thymeleaf模板引擎3. ✅MyBatis Plus框架4. ✅部署项目 四.🦁演示效果1. 管理员模块1.1 用户管理1.2 浏览管理员首页1.3 论坛管理1.4 校园咨询管理…

Java 8 Map 新增方法详解

Java 8 Map 新增方法详解 1. getOrDefault 源码: default V getOrDefault(Object key, V defaultValue) {V v;return (((v get(key)) ! null) || containsKey(key))? v: defaultValue;}作用:安全获取值,若key不存在则返回默认值 示例&…

山东大学 2025 web数据管理期末复习总结

SDU-2025年-Web数据管理期末总结 考试题型 填空 :都来自于PPT中名词解释简答题:需要背一些公式。 根据L老师上课提及的重点一共总结了87问题。 文章目录 SDU-2025年-Web数据管理期末总结考试题型第1讲 绪论此章不考 第2讲 网络爬虫技术2.1 爬虫是什么…

Spring框架的设计模式

Spring 框架深度集成了多种经典设计模式,这些模式支撑了其核心功能(如IoC、AOP)的实现,以下是关键模式及其应用场景的梳理: 1、工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式…

git报错fatal: 远端意外挂断了

git报错fatal: 远端意外挂断了 报错详细内容 mr.mbogon tinymce % git add . mr.mbogon tinymce % git commit -m init [master c6cfc2a] init1 file changed, 2 insertions(), 1 deletion(-) mr.mengbogon tinymce % git push 枚举对象中: 241, 完成…

Windows 下安装 NVM

NVM 下载 NVM 在工作中,你可能遇到过某个项目需要高版本的 node 才能运行,而有的项目可能只支持低版本的 node,此时就可以借助于一些 Node 版本管理工具,比如 nvm(Node Version Manager),帮助…

AI知识补全(十七):通用人工智能AGI是什么?

名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(十六):A2A - 谷歌开源的agent通信协议是什么? 目录 一、什么是AGI?概念解析1. 什么是AGI2. AGI与现有AI的本质区别二 、AGI的核…

Spring Cloud Gateway 介绍

什么是Spring Cloud Gateway? Spring Cloud Gateway 是 Spring Cloud 社区官方推出的一个基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.x 的下一代 API 网关(API Gateway)解决方案。它旨在为微服务架构提供统一、简洁、高效的…

slam--高斯分布

教程 博主解释 高斯分布 高斯分布(Gaussian Distribution),又称正态分布(Normal Distribution),是描述连续型随机变量分布规律的一种概率分布。 (1) 一维高斯分布 μ:均值/数学期望&#xff0…

机器视觉标定讲解

B站 :道传科技上位机 观看教程 一、什么是相机标定 相机标定(Camera Calibration)是指通过实验或算法手段确定相机的内部参数(如焦距、主点坐标、畸变系数)和外部参数(如旋转矩阵、平移向量&#xff0…

文件的秒传、分片上传以及断点续传 || Redis缓存减轻数据库读写压力

实现文件的秒传、分片上传以及断点续传的功能。使用 Redis 缓存上传的文件分片信息减轻数据库读写压力,同时防止有人恶意攻击服务器导致服务器磁盘爆满无法提供服务。 🔍 详解: 1. 实现文件的秒传、分片上传以及断点续传功能 秒传&#xff0…

安全大模型智驱网络和数据安全效能跃迁

从2023年ChatGPT开始,网络安全行业就一直尝试和AI大模型来结合,解决网络安全的痛点,例如告警多,专家少,新的APT攻击层出不穷,已有的基于规则的防护手段失灵,如何使用大模型的泛化能力来提升对未…

Android S - 恢复部分应用安装

使用展锐提供的代码编译出来的固件&#xff0c;不包含DeskClock等应用。 之前也遇到过这个情况&#xff0c;只是时间太久忘记了&#xff0c;在这里再次记录&#xff01; frameworks/native/data/etc/android.app.remove.xml<?xml version"1.0" encoding"ut…

android 之 CALL

一、组件职责与定位 组件所在进程核心职责关键特性CallsManagerTelecom系统进程通话状态机核心&#xff1a;管理所有Call对象的生命周期&#xff08;创建、状态更新、销毁&#xff09;。监听Call状态变化并通知所有观察者&#xff08;如InCallController&#xff09;。通过mLi…

Swift 6 学习笔记(二)The Basics

这篇笔记也是同步 Swift 6 官方教程中的第二篇 《The Basics》&#xff0c;这篇博客中的大部分内容在第一篇中已经涉及&#xff0c;这篇可以被认为是基础类型的的补充篇&#xff0c;多了很多说明信息。 官方教学文档 《The Basics》&#xff1a; Swift 提供了许多基本数据类型…

【PHP】BC Math 函数参考表

BC Math 函数参考表: 函数名描述语法bcadd两个任意精度数字的加法bcadd($num1, $num2, [scale])bcsub两个任意精度数字的减法bcsub($num1, $num2, [scale])bcmul两个任意精度数字乘法bcmul($num1, $num2, [scale])bcdiv两个任意精度数字除法bcdiv($num1, $num2, [scale])bcmod…

C# TAP异步编程(Task/async/await)总结

C#中有个很好用的东西&#xff0c;TAP异步编程&#xff08;Task-based Asynchronous Pattern&#xff09;&#xff0c;是目前C#推荐的异步编程模型。它基于 System.Threading.Tasks.Task 和 async/await 关键字&#xff0c;旨在简化异步代码的编写、调试和维护。TAP 是现代 .NE…