当前位置: 首页 > news >正文

Flink CDC系列之:理解学习Kubernetes模式

Flink CDC系列之:理解学习Kubernetes模式

  • 准备
  • 会话模式
  • 启动会话集群
  • 设置 Flink CDC
  • 提交 Flink CDC Job

Kubernetes 是一种流行的容器编排系统,用于自动化计算机应用程序的部署、扩展和管理。Flink 的原生 Kubernetes 集成允许您直接在正在运行的 Kubernetes 集群上部署 Flink。此外,由于 Flink 可以直接与 Kubernetes 通信,因此它能够根据所需资源动态分配和取消分配 TaskManager。

Apache Flink 还提供了一个 Kubernetes 运算符,用于管理 Kubernetes 上的 Flink 集群。它支持独立和原生部署模式,并大大简化了 Kubernetes 上 Flink 资源的部署、配置和生命周期管理。

准备

本文档假设正在运行的 Kubernetes 集群满足以下要求:

  • Kubernetes >= 1.9。
  • KubeConfig,有权列出、创建、删除 pod 和服务,可通过 ~/.kube/config 进行配置。可以通过运行 kubectl auth can-i <list|create|edit|delete> pods 来验证权限。
  • 启用 Kubernetes DNS。
  • 具有 RBAC 权限的默认服务帐户可以创建、删除 pod。

会话模式

Flink 可在所有类 UNIX 环境中运行,即 Linux、Mac OS X 和 Cygwin(适用于 Windows)。

可以参考概述来检查支持的版本并下载 Flink 的二进制版本,然后提取存档:

tar -xzf flink-*.tgz

应该设置 FLINK_HOME 环境变量,例如:

export FLINK_HOME=/path/flink-*

启动会话集群

要在 k8s 上启动会话集群,请运行 Flink 附带的 bash 脚本:

cd /path/flink-*
./bin/kubernetes-session.sh -Dkubernetes.cluster-id=my-first-flink-cluster

启动成功后返回信息如下:

org.apache.flink.kubernetes.utils.KubernetesUtils            [] - Kubernetes deployment requires a fixed port. Configuration blob.server.port will be set to 6124
org.apache.flink.kubernetes.utils.KubernetesUtils            [] - Kubernetes deployment requires a fixed port. Configuration taskmanager.rpc.port will be set to 6122
org.apache.flink.kubernetes.KubernetesClusterDescriptor      [] - Please note that Flink client operations(e.g. cancel, list, stop, savepoint, etc.) won't work from outside the Kubernetes cluster since 'kubernetes.rest-service.exposed.type' has been set to ClusterIP.
org.apache.flink.kubernetes.KubernetesClusterDescriptor      [] - Create flink session cluster my-first-flink-cluster successfully, JobManager Web Interface: http://my-first-flink-cluster-rest.default:8081

然后,需要将这两个配置添加到您的 flink-conf.yaml 中:

rest.bind-port: {{REST_PORT}}
rest.address: {{NODE_IP}}

{{REST_PORT}} 和 {{NODE_IP}} 应该被你的 JobManager Web 界面的实际值替换。

设置 Flink CDC

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

tar -xzf flink-cdc-*.tar.gz

解压后的 flink-cdc 包含四个目录:bin、lib、log 和 conf。

从发布页面下载连接器 jar,并将其移动到 lib 目录。

下载链接仅适用于稳定版本,SNAPSHOT 依赖项需要您根据特定分支自行构建。

提交 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 Standalone集群。

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 的作业。

相关文章:

Flink CDC系列之:理解学习Kubernetes模式

Flink CDC系列之&#xff1a;理解学习Kubernetes模式 准备会话模式启动会话集群设置 Flink CDC提交 Flink CDC Job Kubernetes 是一种流行的容器编排系统&#xff0c;用于自动化计算机应用程序的部署、扩展和管理。Flink 的原生 Kubernetes 集成允许您直接在正在运行的 Kuberne…...

git合并相关操作详解

在使用Git进行分支管理时,合并(merge)操作是非常常见的。下面是Git合并相关的详细步骤和一些常见的场景及注意事项。 一、 基本合并操作 假设我们有两个分支:main 和 feature,希望将 feature 合并到 main 上。 切换到目标分支 首先需要切换到你想合并到的分支。例如,切…...

前端经典【面试题】持续更新HTML、CSS、JS、VUE、FLUTTER、性能优化等

HTML/CSS 面试题 什么是语义化 HTML&#xff1f; 说明&#xff1a;语义化 HTML 使用 HTML 标签来描述内容的含义&#xff0c;而不仅仅是其外观。使用语义化标签可以提高可读性和可访问性&#xff0c;并对 SEO 友好。示例&#xff1a; <header><h1>网站标题</h1&…...

【Linux知识】linux磁盘管理深入了解

文章目录 常见磁盘管理命令行磁盘分区NASNAS 磁盘挂载&#x1f510; 如何设置NAS设备的访问权限&#xff1f; Mkfs&#x1f9d0; mkfs 命令支持哪些文件系统类型&#xff1f; Mount&#x1f511; 在Linux中&#xff0c;如何安全地卸载挂载的文件系统&#xff1f; 常见磁盘管理命…...

Qt Essential Classes

目录 QVariant QFlags QRandomGenerator 经典的Qt容器 QVector QList QMap QMultiMap QSet QHash QVariant 同std::variant是一样的&#xff0c;他是一个更加高级的union。在一个时间下&#xff0c;它虽然实际上只能是一种类型&#xff0c;但是一个variant可以hold住…...

小小猫棒onu替换家用光猫,薅运营商带宽羊毛,突破1000M

小小猫棒onu 一、总体步骤 1 记录原来光猫信息 主要包括SN&#xff0c;ploam密码&#xff0c;loid、loid密码、 mac、上网的vlan id等 一般gpon采用SN、ploam密码、SNploam密码三种中的一种认证方式 一般Epon采用loid&#xff08;逻辑id&#xff09;、mac、loid mac三种中…...

软件测试学习笔记丨Selenium学习笔记:css定位

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/22511 本文为霍格沃兹测试开发学社的学习经历分享&#xff0c;写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ 说明&#xff1a;本篇博客基于sel…...

python数据处理常用操作

数据处理是机器学习中非常重要的一步&#xff0c;以下是一些常用的操作和示例代码&#xff1a; 1. 数据清洗 处理缺失值&#xff1a; import pandas as pd# 读取数据 df pd.read_csv(data.csv)# 删除缺失值 df.dropna(inplaceTrue)# 用均值填充缺失值 df.fillna(df.mean(), i…...

解决minio跨域问题

MinIO 支持跨域资源共享(CORS)&#xff0c;允许你配置跨域请求的相关策略。以下是一个基本的CORS配置示例&#xff0c;你可以在MinIO的配置文件&#xff08;例如config.json&#xff09;中设置这些策略&#xff1a; 在Linux中 root/.minio 目录下如果没有就新建一个 config.jso…...

python 跳过当前循环

在 Python 中&#xff0c;可以使用 continue 语句来跳过当前循环的剩余部分&#xff0c;并继续下一次循环。continue 语句用于跳过循环体中剩余的语句&#xff0c;并立即开始下一次迭代。 以下是一个简单的示例&#xff0c;演示了如何在 for 循环中使用 continue 语句&#xf…...

数据库数据恢复—Oracle ASM磁盘组掉线 ,ASM实例无法挂载的数据恢复案例

Oracle数据库数据恢复环境&故障&#xff1a; Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 &#xff0c;ASM实例不能mount。 Oracle数据库故障分析&恢复方案&#xff1a; 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储…...

jupyter notebook改变默认启动路径

安装好Anaconda 3以后&#xff0c;就可以使用Jupyter notebook了&#xff0c;但是我们打开Jupyter notebook后&#xff0c;发现界面是一个默认的目录&#xff0c;这个目录在哪里&#xff1f;如果想把自己写的程序文件保存在自己新建的一个文件夹里&#xff0c;修改默认目录到自…...

libevent源码剖析-基本数据结构

1 简介 前面系列文章对libevent源码的主体结构&#xff0c;从reactor框架实现&#xff0c;到evbuffer和bufferevent实现原理&#xff0c;及libevent的例子进行了剖析&#xff0c;自此&#xff0c;我们便可基于libevent开发app了。 从本文开始&#xff0c;主要来介绍下libevent源…...

往期文章汇总——射频测量+无线通信+软件无线电+6G科普

本节目录 一、射频测量系列往期链接 二、无线通信系列往期链接 三、软件无线电系列往期链接 四、6G科普系列往期链接本节内容 一、射频测量系列往期链接 射频测量 | 滤波器的关注指标 射频测量 | 射频电路中的负载与滤波器 射频测量 | 射频衰减器的功率系数 射频测量 | 衰减…...

微信小程序 - 深 / 浅拷贝实现方法,微信小程序深拷贝与浅拷贝,函数方法封装直接调用使用,深拷贝cloneDeep和浅拷贝clone(深复制和浅复制)

前言 在微信小程序中,你无法 直接使用常规浏览器环境中的深浅拷贝方法。 但可以借助 utils.js 实现,下面是方法。 创建深浅拷贝函数 依次打开小程序目录【utils】→【utils.js】,写入深拷贝函数并暴露出去。 // utils.js// 对象深拷贝函数 const deepClone = function(in…...

Log4Net配置详解及输出自定义消息类示例代码

1.简单使用实例 1.1 添加log4net.dll的引用。 在NuGet程序包中搜索log4net并添加&#xff0c;此次我所用版本为2.0.17。如下图&#xff1a; 1.2 添加配置文件 右键项目&#xff0c;添加新建项&#xff0c;搜索选择应用程序配置文件&#xff0c;命名为log4net.config&#xff0c…...

C++在实际项目中的应用第二节:C++与区块链

第五章&#xff1a;C在实际项目中的应用 第二课&#xff1a;C与区块链 区块链技术因其去中心化、不可篡改和透明性而受到广泛关注。在这门课程中&#xff0c;我们将深入探讨区块链的基本原理、智能合约的开发以及实际应用的案例分析&#xff0c;重点使用 C 作为实现语言&…...

浅记React面试丢人时刻

前提 去面试了&#xff0c;技术面完一轮之后&#xff0c;突发的来了一次React的考察&#xff0c;哥们&#xff0c;猝不及防之下&#xff0c;脑袋直接清空&#xff0c;啥也想不起来了。现在想想&#xff0c;实属丢人&#xff0c;记录一下啥也没答出来的面试&#xff0c;钉在耻辱…...

Python入门:学会Python装饰器让你的代码如虎添翼!(Python如何不改动原有函数代码添加一些额外的功能)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 什么是Python装饰器📝 如何编写Python装饰器📝 带参数的装饰器📝 Python装饰器的使用场景📝 注意事项📝 多装饰器的使用⚓️ 相关链接 ⚓️📖 介绍 📖 你是不是在写代码的时候,常常会想有没有…...

【C++】哈希冲突的解决办法:闭散列 与 开散列

哈希冲突解决 上一篇博客提到了&#xff0c;哈希函数的优化可以减小哈希冲突发生的可能性&#xff0c;但无法完全避免。本文就来探讨一下解决哈希冲突的两种常见方法&#xff1a;闭散列和开散列 1.闭散列 闭散列也叫开放定址法&#xff0c;发生哈希冲突时&#xff0c;如果哈…...

对比自行维护与使用Taotoken在模型接入效率上的差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比自行维护与使用Taotoken在模型接入效率上的差异 在开发需要集成大语言模型能力的应用时&#xff0c;团队通常面临一个核心选择…...

照片去背景的方法有哪些?2026年最全工具推荐与实用指南

前两天有个朋友问我&#xff0c;怎样能快速把证件照的底色换掉&#xff0c;还有电商卖家想给商品图去背景。我才意识到&#xff0c;现在还有很多人不知道照片去背景有这么多方便的办法。与其逐个讲解&#xff0c;我决定写篇文章&#xff0c;把我这些年试过的各种照片去背景的方…...

从电机控制到呼吸灯:用STM32CubeMX玩转TIM高级定时器的互补PWM与死区时间配置

从电机控制到呼吸灯&#xff1a;用STM32CubeMX玩转TIM高级定时器的互补PWM与死区时间配置 在嵌入式开发中&#xff0c;定时器是最基础也最强大的外设之一。对于STM32开发者来说&#xff0c;掌握高级定时器的互补PWM输出和死区时间配置&#xff0c;意味着可以解锁从电机控制到LE…...

终极指南:10分钟快速上手Ghidra逆向工程工具安装与配置

终极指南&#xff1a;10分钟快速上手Ghidra逆向工程工具安装与配置 【免费下载链接】ghidra_installer Helper scripts to set up OpenJDK 11 and scale Ghidra for 4K on Ubuntu 18.04 / 18.10 项目地址: https://gitcode.com/gh_mirrors/gh/ghidra_installer 还在为复…...

IO:为专业开发者打造的AI编程助手架构解析与实战指南

1. 项目概述&#xff1a;IO&#xff0c;一个为专业开发者打造的AI编程助手如果你和我一样&#xff0c;每天大部分时间都在和代码、终端、以及各种开发工具打交道&#xff0c;那你一定理解那种对“流畅感”的渴望。我们需要的不是一个只会回答问题的聊天机器人&#xff0c;而是一…...

.NET 10 + CQRS + MediatR 一个跨平台文档管理系统

前言基于 .NET 10 打造的跨平台文档管理系统&#xff0c;才真正感受到了什么叫"专业级"的开源力量。它不仅仅是一个简单的文件存储工具&#xff0c;更是一个集成了 CQRS 架构、实时通信、版本控制等高级特性的现代化应用示例。项目介绍一款标准的前后端分离项目&…...

订阅Token Plan套餐后在长期项目中的成本节约效果分析

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 订阅Token Plan套餐后在长期项目中的成本节约效果分析 对于需要持续、稳定调用大模型的个人开发者或团队而言&#xff0c;成本控制…...

【AI面试临阵磨枪-54】如何监控 AI 系统:成功率、延迟、Token 消耗、幻觉率、调用量

一、 面试题目面试官提问&#xff1a; “在大规模 Agent 系统中&#xff0c;你是如何建立监控体系的&#xff1f;请针对 成功率、延迟、Token 消耗、幻觉率、调用量 这五个核心指标&#xff0c;详细谈谈你的采集、分析与预警方案。”二、 知识储备1. 核心背景&#xff1a;AI 监…...

图像识别与目标检测:从概念到实战的全面解析

1. 项目概述&#xff1a;从“认脸”到“找茬”的认知跃迁在计算机视觉这个行当里干了十几年&#xff0c;我见过太多刚入行的朋友&#xff0c;甚至是一些有经验的开发者&#xff0c;对“图像识别”和“目标检测”这两个词傻傻分不清楚。经常有人拿着一个“识别猫狗”的需求过来&…...

VMware Workstation Pro 17免费激活实战:5分钟解锁专业虚拟化

VMware Workstation Pro 17免费激活实战&#xff1a;5分钟解锁专业虚拟化 【免费下载链接】VMware-Workstation-Pro-17-Licence-Keys Free VMware Workstation Pro 17 full license keys. Weve meticulously organized thousands of keys, catering to all major versions of V…...