![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flink
文章平均质量分 78
鸿乃江边鸟
Apache Spark Contributor
专注于技术的dotaer
展开
-
Flink 中kafka broker缩容导致Task一直重启
(默认30000),这两个参数来控制kakfa的客户端从服务端请求超时,也就是说每次请求的超时时间是30s,超时之后可以再重试,如果在60s内请求没有得到任何回应,则会报。这里做的事情就是从持久化的State中恢复kafkaTopicOffset信息,我们这里假设是第一次启动。获取到要提交的kafka offset信息,并持久化保存kafka中。在Flink中对于Kafka的Connector的。,这里我们只讨论kafka作为source的情况,方法会被调用,所有kafka相关的操作都可以追溯到。原创 2023-10-12 11:28:35 · 1105 阅读 · 0 评论 -
Apache Hudi初探(五)(与flink的结合)--Flink 中hudi clean操作
首先是反序列化CleanPlan,然后在进行清理,主要是删除1. 如果没有满足的分区,直接删除该分区,2. 否则删除该分区下的满足条件的文件,最后返回。HoodieFlinkMergeOnReadTable*类型的hudi表,用来做clean等操作。,也就是在写数据失败的时候,会立即进行这次写失败的数据的清理,在这种情况下,创建一个只有一个线程的线程池,改线程池的主要作用来异步执行hudi写操作。本文主要是具体说说Flink中的clean操作的实现。真正执行clean的部分,主要是调用。原创 2023-09-27 13:01:49 · 1182 阅读 · 0 评论 -
Apache Hudi初探(四)(与flink的结合)--Flink Sql中hudi的createDynamicTableSource/createDynamicTableSink/是怎么被调用
最终会调用catalogManager.registerCatalog方法,用catalogManager管理了起来,这样在用到的时候就会调用该get方法得到对应的catalog。来说明一下Flink中createDynamicTableSource/createDynamicTableSink/createCatalog是什么时候被调用的。也说该方法的调用是在逻辑生成阶段的.(createDynamicTableSource方法的调用逻辑也是一样的)对应到SQL中的调用逻辑为。原创 2023-09-08 18:02:58 · 211 阅读 · 1 评论 -
Apache Hudi初探(三)(与flink的结合)--flink写hudi的操作(真正的写数据)
在之前的文章中Apache Hudi初探(二)(与flink的结合)–flink写hudi的操作(JobManager端的提交操作) 有说到写hudi数据会涉及到写hudi真实数据以及写hudi元数据,这篇文章来说一下具体的实现这里的操作就是在HoodieFlinkWriteClient.upsert方法:initTable初始化HoodieFlinkTablepreWrite在这里几乎没什么操作getOrCreateWriteHandle创建一个写文件的handle(假如这里创建的是Flin原创 2023-08-31 23:24:55 · 802 阅读 · 0 评论 -
Apache Hudi初探(二)(与flink的结合)--flink写hudi的操作(JobManager端的提交操作)
在Apache Hudi初探(一)(与flink的结合)中,我们提到了,这个操作真正写hudi是在方法下的,具体分析一下写入的过程。对于这个代码片段,我们主要看 这个对象(这个操作是Flink框架的操作):最主要的算子为,其中最主要的操作是由来完成的:操作,主要是做一些初始化的操作获取当前的task的索引下标,用来向发送event给,之后 StreamWriteOperatorCoordinator() 进行处理,后续会说到StreamWriteOperatorCoordinator初始化hu原创 2023-08-21 22:14:56 · 2136 阅读 · 0 评论 -
Apache Hudi初探(一)(与flink的结合)
long ckpTimeout = * 获取到。的方式,只需要引入了对应的jar包即可,以。的方式,所以不需要像使用。的超时时间,并设置为。原创 2023-06-18 16:53:18 · 1419 阅读 · 1 评论 -
FLINK ON K8S 基于Zookeeper和基于K8S原生HA的区别
本文基于Flink 1.13.x。原创 2022-10-13 09:57:31 · 1108 阅读 · 0 评论 -
Flink 基于K8S HA 存在的问题
在基于原生K8S做JobManager HA服务的前提下,随着部署在K8S的flink任务越来越多,JobManager节点挂的频率越来越高,这严重影响了整个Flink作业的运行。其实最主要的原因是flink集群对etcd的访问过于频繁(etcd是K8S的最为关键的组件),导致了整个K8S集群的不稳定。对于目前的flink的架构,画出如下的图,该图也是参考了。本文基于Flink 1.13.x。原创 2022-10-12 16:21:17 · 997 阅读 · 0 评论 -
Flink 维表异步查询的实现以及问题排查
本文基于Flink 1.13.3Flink计算引擎VVR版本的hbase Connector具体maven依赖如下:在基于VVR版本的cloudHbase维表查询的时候,发现同步查询的速度很慢,所以我们打算做基于异步的维表查询。在运行的过程中发现了NPE问题,具体的报错堆栈如下:先说结论Flink计算引擎VVR版本的hbase Connector把hbase的数据转化为RowData的时候存在多线程问题,这种会导致NPE问题相比Asynchronous I/O for External Dat原创 2022-06-10 18:25:34 · 2034 阅读 · 0 评论 -
FLINK JDBC SQL Connector遇到的类型转换问题
背景Flink 1.3最近在写Flink Sql的时候,遇到了java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long 问题分析直接上报错的sql,如下:CREATE TABLE `xxx` ( `merchantId` BIGINT, `userId` BIGINT, `status` BIGINT) WITH ( );具体的问题堆栈如下:java.lang.C原创 2022-04-14 20:11:08 · 4160 阅读 · 0 评论