Flink
文章平均质量分 81
Flink
shandongwill
学而不厌,诲人不倦,承接java、大数据相关各类培训和咨询,C、C++基础培训
展开
-
Flink NoSuchFileException: /tmp/flink-netty-shuffle-xxxx/xxxx.channel.shuffle.data异常处理
Fllink 批任务运行一段时间后出现如下错误:java.nio.file.NoSuchFileException: /tmp/flink-netty-shuffle-c5222ebc-a7bb-4fa1-bfd2-c7b5c9bd9b67/3740ddaa0f56ec8bcce80927e4a05443.channel.shuffle.data详细信息如下:Flink任务按Batch模式执行时,配置taskmanager.tmp.dirs 不要使用/tmp目录原创 2024-07-17 16:06:39 · 505 阅读 · 10 评论 -
使用Flink CDC实现 Oracle数据库数据同步(非SQL)
Flink CDC 是一个基于流的数据集成工具,旨在为用户提供一套功能更加全面的编程接口(API)。该工具使得用户能够以 YAML 配置文件的形式实现数据库同步,同时也提供了Flink CDC Source Connector API。原创 2024-06-28 10:21:26 · 1062 阅读 · 7 评论 -
Flink 集群部署模式
Flink支持多种集群部署模式,以满足不同场景和需求。会话模式(Session Mode)在会话模式下,用户首先启动一个长期运行的Flink集群,然后在这个会话中提交多个作业。集群资源在启动时就已经确定,提交的作业会竞争集群中的资源,直到作业运行完毕释放资源。会话模式适合执行大量规模小、执行时间短的作业。由于集群资源是共享的,因此可能存在资源争用的问题。单作业模式(Per-Job Mode)在单作业模式下,每个作业都会启动一个独立的Flink集群,作业完成后集群也会关闭。原创 2024-03-16 11:50:28 · 1894 阅读 · 8 评论 -
Flink广播流 BroadcastStream
Flink中的广播流(BroadcastStream)是一种特殊的流处理方式,它允许将一个流(通常是一个较小的流)广播到所有的并行任务中,从而实现在不同任务间共享数据的目的。广播流在处理配置信息、小数据集或者全局变量等场景下特别有用,因为这些数据需要在所有任务中保持一致且实时更新。定义MapStateDescriptor:首先需要定义一个MapStateDescriptor来描述要广播的数据的格式。这个描述器指定了数据的键值对类型。创建广播流:然后,需要将一个普通的流转换为广播流。这通常通过调用流的。原创 2024-03-14 17:21:00 · 2432 阅读 · 8 评论 -
Flink实战之 MySQL CDC
Flink CDC主要关注于从源数据库(如MySQL、PostgreSQL等)捕获数据变更,并将这些变更实时地提供给Flink作业进行处理。Flink CDC的核心优势在于其实时性和一致性。通过捕获数据库的增量变动记录,Flink CDC能够实时地将这些变更数据同步到Flink流处理作业中,从而实现低延迟的数据处理和分析。同时,Flink CDC还保证了数据的一致性,确保在数据处理过程中数据的准确性和完整性。为了实现这一功能,Flink社区开发了flink-cdc-connectors组件。原创 2024-03-13 08:28:49 · 1595 阅读 · 6 评论 -
Flink StreamTask启动和执行源码分析
Flink的StreamTask的启动和执行是一个复杂的过程,涉及多个关键步骤。初始化:StreamTask的初始化阶段涉及多个任务,包括Operator的配置、task特定的初始化以及初始化算子的State等。在这个阶段,Flink将业务处理函数抽象为operator,并通过operatorChain将业务代码串起来执行,以完成业务逻辑的处理。同时,还会调用具体task的init方法进行初始化。读取数据和事件:StreamTask通过mailboxProcessor读取数据和事件。运行业务逻辑。原创 2024-03-10 20:50:22 · 1278 阅读 · 13 评论 -
Flink 资源管理
在Flink中,资源管理是一个核心组件,它负责分配和管理计算资源,以确保任务能够高效、稳定地运行。资源管理的目标高效性:确保任务能够充分利用可用的计算资源,达到最佳的处理性能。稳定性:在资源不足或任务失败时,能够优雅地处理并恢复任务,保持系统的稳定运行。资源管理的组件:由Flink Master(也称为JobManager)和多个Task Managers组成。Master负责整个集群的协调和资源分配,而Task Managers负责执行具体的任务。原创 2024-03-09 21:06:14 · 1334 阅读 · 5 评论 -
Flink 物理执行图
JobManager根据ExecutionGraph对作业进行调度,并在各个TaskManager上部署任务。这些任务在TaskManager上的实际执行过程就形成了物理执行图。物理执行图并不是一个具体的数据结构,而是描述了流处理任务在集群中的实际执行情况。原创 2024-03-08 16:19:48 · 1513 阅读 · 6 评论 -
Flink ExecuteGraph构建源码解析
JobManager(JobMaster) 根据 JobGraph 生成 ExecutionGraph。ExecutionGraph是JobGraph 的并行化版本,是调度层最核心的数据结构。原创 2024-03-07 17:33:25 · 1488 阅读 · 8 评论 -
Flink JobGraph构建过程
在StreamGraph构建过程中分析了StreamGraph的构建过程,在StreamGraph构建完毕之后会对StreamGraph进行优化构建JobGraph,然后再提交JobGraph。优化过程中,Flink会尝试将尽可能多的StreamNode聚合在一个JobGraph节点中,通过合并创建JobVertex,并生成JobEdge,以减少数据在不同节点之间流动所产生的序列化、反序列化、网络传输的开销。原创 2024-03-06 12:32:19 · 1172 阅读 · 6 评论 -
Flink StreamGraph生成过程
在 Flink 中,StreamGraph 是数据流的逻辑表示,它描述了如何在 Flink 作业中执行数据流转换。StreamGraph 是 Flink 运行时生成执行计划的基础。使用DataStream API开发的应用程序,首先被转换为 Transformation,再被映射为StreamGraph,在客户端进行StreamGraph、JobGraph的转换,提交JobGraph到Flink集群后,Flink集群负责将JobGraph转换为ExecutionGraph,之后进入调度执行阶段。Stre原创 2024-03-03 21:12:24 · 1511 阅读 · 8 评论 -
Flink状态存储-StateBackend
Flink是一个流处理框架,它需要对数据流进行状态管理以支持复杂的计算逻辑。在Flink中,状态存储是指如何和在哪里存储这些状态数据。Flink提供了多种状态后端(State Backend)来实现这种存储,以满足不同的应用场景和性能需求。StateBackend需要具备如下两种能力:1、在计算过程中提供访问 State 的能力,开发者在编写业务逻辑中能够使用 StateBackend 的接口读写数据。2、能够将 State 持久化到外部存储,提供容错能力。原创 2024-03-02 21:06:33 · 1618 阅读 · 5 评论 -
flink1.16源码编译打包时报错- error Cannot read properties of null (reading ‘pickAlgorithm‘)
flink1.16源码编译打包报错 error Cannot read properties of null (reading 'pickAlgorithm')原创 2024-01-28 12:19:40 · 353 阅读 · 1 评论 -
flink1.16源码编译打包时报错-Failed to run task: ‘npm ci --cache-max=0 --no-save --registry=xxx‘ failed
Flink1.16编译打包报错: Failed to run task: 'npm ci --cache-max=0 --no-save --registry=https://registry.npm.taobao.org' failed。原创 2024-01-26 14:39:50 · 1392 阅读 · 1 评论 -
Flink Taskmanager 进程被Kill的原因分析2
Task did not exit gracefully within 180 + seconds.出现Taskmanager 进程莫名被kill的情况。原创 2023-12-21 09:57:27 · 478 阅读 · 0 评论 -
Flink Taskmanager 进程被Kill的原因分析3
OutOfMemory原创 2023-12-21 10:20:02 · 512 阅读 · 0 评论 -
【Flink Taskmanager 进程被Kill的原因分析1】
flink Heartbeat timeout原创 2023-12-21 09:31:33 · 500 阅读 · 0 评论 -
Flink Metaspace OutOfMemoryError问题分析
OutOfMemory Metaspace Flink原创 2023-12-20 17:00:05 · 701 阅读 · 0 评论 -
【Flink数据倾斜优化】
flink 数据倾斜 反压原创 2023-12-20 15:10:47 · 474 阅读 · 1 评论 -
Spring SpEL在Flink中的应用-与FlatMap结合实现数据动态计算
SpEL表达式与Flink FlatMapFunction或MapFunction结合可以实现基于表达式的简单动态计算。可以将计算表达式放入数据库,对数据进行计算处理,从而实现只需修改表达式不用修改Flink代码就能实现数据计算。对于基于Flink进行数据计算平台建设会起到事半功倍的效果。原创 2024-01-25 08:40:38 · 1011 阅读 · 0 评论 -
Spring SpEL在Flink中的应用-与Filter结合实现数据动态分流
SpEL表达式与Flink fiter结合可以实现基于表达式的灵活动态过滤。有关SpEL表达式的使用请参考Spring SpEL在Flink中的应用-SpEL详解。可以将过滤规则放入数据库,根据不同的数据设置不同的过滤表达式,从而实现只需修改过滤表达式不用修改Flink代码的功能。对于基于Flink进行数据计算平台建设会起到事半功倍的效果。以上只是简单的示例,在实际应用中可以将过滤表达式放到数据库,将过滤规则放入缓存定时刷新。大家可以根据实际需求进行扩展。原创 2024-01-24 10:46:10 · 1006 阅读 · 0 评论 -
Spring SpEL在Flink中的应用-SpEL详解
Spring 表达式语言 Spring Expression Language(简称 SpEL )是一个支持运行时查询和操做对象图的表达式语言。语法相似于 EL 表达式 ,但提供了显式方法调用和基本字符串模板函数等额外特性。SpEL 在许多组件中都得到了广泛应用,如 Spring Data、Spring Security、Spring Web Flow 等。它提供了一种非常灵活的方式来查询和操作对象图,从而简化了复杂的业务逻辑和数据操作。本系列文章介绍SpEL与Flink结合应用。注册自定义函数,并调用。原创 2024-01-22 11:12:43 · 972 阅读 · 0 评论 -
Flink旁路输出OutputTag
除了由 DataStream 操作产生的主要流之外,还可以产生任意数量的旁路输出结果流。结果流中的数据类型不必与主要流中的数据类型相匹配,并且不同旁路输出的类型也可以不同。当你需要拆分数据流时,通常必须复制该数据流,然后从每个流中过滤掉不需要的数据。需要使用匿名内部类,其中T是泛型。原创 2024-01-16 13:37:52 · 1312 阅读 · 0 评论 -
Flink State 状态管理
状态在Flink中叫做State,用来保存中间计算结果或者缓存数据。状态数据的存储和访问在Task内部,如何高效地保存状态数据和使用状态数据。状态数据的备份和恢复作业失败是无法避免的,那么就要考虑如何高效地将状态数据保存下来,避免状态备份降低集群的吞吐量,并且在Failover时恢复作业到失败前的状态。状态数据的划分和动态扩容作业在集群内并行执行那么就要思考对于作业的Task而言如何使用统一的方式对状态数据进行切分,在作业修改并行度导致Task数据改变的时候,如何确保正确地恢复。原创 2024-01-13 20:11:45 · 1501 阅读 · 13 评论 -
自定义Flink SourceFunction定时读取数据库
自定义Flink SourceFunction定时读取数据库, 有些场景需要定时的读取不断变化的数据库数据作为流数据。本文中的代码实现适用于所有关系数据库。原创 2024-01-11 15:41:34 · 1226 阅读 · 5 评论 -
Flink standalone集群部署配置
Flink Standalone 部署详细步骤和主要参数配置原创 2024-01-09 17:23:12 · 1578 阅读 · 6 评论