自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JasonLee_后厂村程序员

Stay hungry Stay foolish

  • 博客(160)
  • 收藏
  • 关注

原创 Flink on yarn 实时日志收集到 kafka 打造日志检索系统

点击上方"JasonLee实时计算",选择"设为星标"再也不用担心错过重要文章后台回复"监控",获取 grafana 监控 Flink最...

2021-08-15 17:35:11 128

原创 Flink 任务实时监控最佳实践(Prometheus + Grafana)打造企业级监控方案

我们都知道 Flink 任务是一个 7*24 小时不停运行的任务,所以对于任务的实时监控就显得尤为重要,因为任务运行的状态对于我们来说是一个黑盒,比如任务是否挂掉,是否存在反压,使用的内存...

2021-08-08 19:14:14 265

原创 【Flink实战系列】Flink 各种报错汇总以及解决方案(持续更新中)

这篇文章主要用来记录平时使用 Flink 过程中遇到的问题以及解决方案,其实前面已经有一篇这样的文章了,但是那篇文章里面的问题已经很多了,不太方便浏览,所以新开了一篇文章,后面的问题都会更新到这篇文章中....

2021-02-06 21:02:33 906 1

原创 【Flink实战系列】自定义通用的 flatmap 实现数据预聚合功能(keyby + countWindow)

需求有时候我们需要对数据做预聚合操作,比如下游需要批量写入或者批量请求访问的时候,关于预聚合大概有两种解决方案,一种是使用 keyby + countWindow 的方式,第二种就是今天要介绍的 flatmap 的方式.并且还要实现一个通用的 flatmap .思路实现过程非常的简单,定义一个泛型类实现 FlatMapFunction 接口,然后定义一个成员变量 List 重写 flatMap 方法,每次把数据缓存到 List 里面攒一个 batch 然后发送到下游,并清空 List 的数据.

2021-01-23 11:56:20 687 5

原创 【Flink实战系列】通用的反序列化类把 JSON 转成 POJO 对象

背景 & 痛点1, Flink 在消费到 kafka 的数据后,我们经常会把数据转成 POJO 对象,方便后面对数据的处理,但是每个人 POJO 类型是不一样的,每次都需要新开发一个反序列化的类,这样会带来大量的重复代码.能不能实现一个通用的反序列类来解决这个问题?2, 如何获取到 kafka 的元数据信息? 比如我有这样的需求,一个 Flink 任务消费了多个 topic 的数据后面要根据不同的 topic 名称做不同的处理逻辑,再比如我需要获取到数据写入 kafka 的时间戳,做全链路的

2021-01-21 19:40:12 2102 14

原创 【Flink实战系列】为什么不建议用 JSONKeyValueDeserializationSchema 反序列化

为什么不建议用JSONKeyValueDeserializationSchema?上一篇文章中在反序列化kafka的数据时候用的是KafkaDeserializationSchema,因为我要获取kafka的元数据信息,有同学问我说为什么不直接用Flink自带的JSONKeyValueDeserializationSchema呢? 这个也可以获取到kafka的元数据信息啊,而且使用起来也非常的简单,JSONKeyValueDeserializationSchema 确实可以获取到kafka的元数据信息,但

2020-09-05 15:53:41 1276 1

原创 【Flink实战系列】Flink 晚到(迟到)的数据怎么更新之前窗口计算结果
原力计划

最近有一个朋友问我,Flink使用窗口计算的时候,如果设置了允许数据晚到时间,这个时候又来了一条属于前面窗口的数据,但是前面窗口的计算结果已经写到mysql了,怎么更正之前的结果,而不是在写入一条数据呢?今天这篇文章就来介绍一下怎么使用Flink的窗口函数更新之前计算的不完全的(不准确的结果)对于晚到的数据,一般有几种常用的处理方式:1,直接丢弃掉(这个也是窗口的默认做法,也就是说一个迟到的元素不会创建一个新的窗口)2,用测流输出的方式,拿到晚到的元素,可以进行,相关的逻辑处理,或者保存起.

2020-05-08 20:54:54 1123 1

原创 Flink项目实战系列(Spark项目实战系列)

本人的知识星球内发布了大量的Flink和Spark的项目实战,文章的目录如下:初识FlinkFlink读取Kafka源码解读Flink的状态后端Flink的runtimeFlink系列之数据流编程模型Flink系列之checkpointFlink系列之savepointFlink系列之checkpoint和savepoint的区别Flink系列之部署Standalone模式...

2019-08-08 10:09:21 4634 1

原创 scala的模式匹配

scala提供了一个非常强大的模式匹配机制,那什么是模式匹配呢?模式匹配是检查某个值(value)是否匹配某一个模式的机制,一个成功的匹配同时会将匹配值解构为其组成部分。它是Java中的switch语句的升级版,同样可以用于替代一系列的 if/else 语句。语法一个模式匹配包含了一系列备选项,每个都开始于关键字case。每个备选项都包含了一个模式及一到多个表达式。箭头符号=>...

2019-04-10 20:54:44 430

原创 【Spark实战系列】spark 各种报错汇总以及解决方案(持续更新中)

这篇文章主要记录下spark中遇到的各种问题,以及解决方法(以后会持续的更新)1.File does not exist. Holder DFSClient_NONMAPREDUCE_-67513653_1 does not have any open files今天早上发现程序报了一个这个错误,目前还没找到报错的原因,先记录一下吧.2.org.apache.kafka.clients...

2019-01-30 15:12:25 3447

原创 hive2.2.0安装与配置(元数据保存在mysql中)

Hive有3中运行模式,今天主要来介绍一下把元数据保存在mysql中的配置方法.mysql的详细安装步骤(1)内嵌模式将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。(2)本地模式这种模式是将元数据保存在本地独立的数据库中(一般是 M...

2019-01-12 01:27:56 355

原创 centos7安装mysql5.6.38史上最详细的安装步骤

最近由于要用到mysql,就想着装一个mysql,但是因为我的虚拟机是centos7的,centos7将默认数据库mysql替换成了Mariadb安装起来就比较的麻烦,遇到各种各样的问题,网上的教程很多,但是基本没有好使的,按照他们的步骤到最后没有一个成功的,搞了很长时间才装好,我记得之前在centos6.5上面安装也没那么复杂啊,但是在7上面不管是用yum方式,还是安装包的方式都搞了好几遍,最后...

2019-01-12 00:14:17 1281 2

原创 carbondata1.5.1编译

What is CarbonData?Apache CarbonData is an indexed columnar data format for fast analytics on big data platform, e.g. Apache Hadoop, Apache Spark, etc.因为我的spark是2.3.1的版本,而最新版的carbondata1.5.1才支持,但是...

2018-12-08 18:55:25 348

原创 hbase的常用命令

现在做的项目用到了hbase,今天就记录一下hbase的一些常用的命令,只是一些比较常用的,当然还有很多命令.1.进入hbase shell console2.查看所有的表: list3.创建表: create 't1', {NAME => 'f1', VERSIONS => 5, TTL => 2592000, BLOCKCACHE => true},创建表...

2018-07-29 13:10:00 413

原创 Flink 1.14.0 消费 kafka 数据自定义反序列化类

在最近发布的 Flink 1.14.0 版本中对 Source 接口进行了重构,细节可以参考 FLIP-27: Refactor Source Interface重构之后 API 层面的改...

2021-10-13 20:00:00 31

原创 Flink 1.14.0 全新的 Kafka Connector

Apache Kafka Connector#Flink 提供了一个 Apache Kafka 连接器,用于从 Kafka Topic 读取数据和向 Kafka Topic 写入数据,并保...

2021-10-12 20:00:00 60

原创 【Flink实战系列】Flink 1.14.0 消费 kafka 数据自定义反序列化器

Flink 1.14.0 消费 kafka 数据自定义反序列类在最近刚发布的 Flink 1.14.0 版本中 Source 接口进行了重构,API 的变化还是非常大的,那在新的接口下消费 kafka 的时候如何自定义反序列类呢?Kafka Source使用Kafka source 提供了一个构建类来构造 KafkaSource 的实例。下面的代码片段展示了如何构建一个 KafkaSource 来消费 topic input-topic 的最早偏移量的消息,使用消费组 my-group,并且只将 m

2021-10-10 12:31:10 44

原创 Flink 任务 Jackson 解析 JSON 使用不当引发的反压问题

背景最近业务方反馈线上一个 topic 的数据延迟比较大,然后我查看了这个 topic 的数据是由一个 Flink 任务产生的,于是就找到了这个任务开始排查问题,发现这个任务是一个非常简单...

2021-08-29 12:35:40 98

原创 【Flink实战系列】Flink SQL 如何实现 count window 功能?

Flink SQL 如何实现 count window 功能?需求在 Flink 里面窗口可以划分为两大类,分别是 TimeWindow 和 CountWindow.TimeWindow 是基于时间的,又可以细分为 Tumble Window, Hop Window, Session Window 这三种都是支持的,CountWindow 是基于个数的,目前在 Flink SQL 里面是不支持的,可能是因为社区觉得 CountWindow 使用场景不是很多吧.那如果我们现在需要批量写第三方存储这个时候可

2021-06-26 20:15:16 314

原创 【Flink实战系列】Flink 消费多个 topic 的数据根据不同 topic 数据做不同的处理逻辑

Flink 消费多个 topic 的数据根据不同 topic 数据做不同的处理逻辑需求有的时候我们需要消费同一个 kafka 集群的多个 topic 数据,然后可能会根据不同 topic 的数据做不同的处理逻辑.可能还需要获取到 topic 的元数据信息比如 offset ,timestamp 等.分析其实对于这个需求来说实现的方式有很多种,比如你可以消费两个 topic 的数据,然后做一个 union 操作,然后可以用 filter 来过滤不同 topic 的数据做不同的处理,但是这种方式并不是最

2021-06-12 16:27:40 829 2

原创 Flink SQL 自定义 redis connector

一般情况下,我们不需要创建新的 connector,因为 Flink SQL 已经内置了丰富的 connector 供我们使用,但是在实际生产环境中我们的存储是多种多样的,所以原生的 co...

2021-06-06 18:00:00 217

原创 Flink 1.13.0 sql-client 新特性及源码分析

在 Flink 1.13.0 版本中增加了很多新特征,具体可以参考前面一篇文章,其中很重要的一点是对 sql-client 功能做了加强,支持了初始化脚本和执行 SQL 文件,SQL 客户...

2021-05-15 20:00:00 537 6

原创 Flink 1.13.0 反压监控的优化

Flink 1.13.0 版本增加了很多新特征,具体可以参考前面一篇文章,在 Flink 1.13.0 版本之前,我们通常是通过 UI 上面的 BackPressure 或者 Metric...

2021-05-12 20:00:00 566 4

原创 【Flink实战系列】Flink 如何实现全链路延迟监控

Flink 如何实现全链路延迟监控需求 & 背景在实际的生产环境中,我们希望可以监控一个任务整个链路的延迟情况,用来分析 Flink 应用的性能表现.分析Flink 的全链路延迟监控指的是从任务的 source 经过中间的 operator 到最后的 sink 端到端的延迟,这是一个非常重要的指标,可以用来衡量 Flink 任务的整体性能和响应延迟,下面就来介绍一下如何实现全链路的监控.思考既然要计算端到端的延迟,很容易想到的办法就是在 source 端获取一个时间戳,然后在 sink

2021-05-11 13:05:12 509

原创 Apache Flink 1.13.0 发布公告

Apache Flink 社区很高兴宣布 Flink 1.13.0 的发布!200 多个贡献者为这个新版本处理了 1000 多个问题。该版本使我们迈出了一大步:将流处理应用程序变得与其他任...

2021-05-07 20:00:00 4405 13

原创 Java SPI 机制在 Flink 中的应用(源码分析)

我们在使用 Flink SQL 的时候是否有过这样的疑问? Flink 提供了各种各样的 connector 我们只需要在 DML 里面定义即可运行,那它是怎么找到要执行的代码呢? 它是怎...

2021-05-06 21:00:00 225

原创 Flink mysql-cdc connector 源码解析

在 Flink 1.11 引入了 CDC 机制,CDC 的全称是 Change Data Capture,用于捕捉数据库表的增删改查操作,是目前非常成熟的同步数据库变更方案。Flink C...

2021-04-27 20:00:00 189

原创 【FlinkSQL实战系列】Flink SQL CDC 实时同步 Mysql 的 Binlog 数据到 kafka

什么是 CDC ?CDC,Change Data Capture,变更数据获取的简称,使用 CDC 我们可以从数据库中获取已提交的更改并将这些更改发送到下游,供下游使用。这些变更可以包括 INSERT,DELETE,UPDATE 等.要解决什么问题 ?使用 flink sql 进行数据同步,可以将数据从一个数据同步到其他的地方,比如 mysql、elasticsearch 等。可以在源数据库上实时的物化一个聚合视图因为只是增量同步,所以可以实时的低延迟的同步数据使用 EventTime joi

2021-04-26 19:22:40 817 1

原创 Flink TaskManager 内存模型详解

Apache Flink 通过严格控制其各个组件的内存使用,在 JVM 之上提供了高效的工作负载。虽然社区努力为所有配置提供合理的默认值,但不可能适用于用户在 Flink 上部署的所有应用...

2021-04-04 10:00:00 322

原创 Flink 1.11.x WatermarkStrategy 不兼容问题

最近群里的一个同学问了这么一个问题,在 Scala 代码中使用了 WatermarkStrategy ,代码在编译的时候会抛出异常,具体的报错信息如下:Error:Error:line(...

2021-03-26 09:00:00 314

原创 sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 25.221-b11. Target VM

今天在查看 JVM 堆内存具体使用情况的时候,执行 jmap 命令发现如下的报错信息,报错说的是虚拟机版本不匹配,感觉很奇怪因为我刚在另外一台机器上执行了这个命令,换了一台机器就执行报错,初步判断是机器环境的问题,最后对比了两个机器的 JDK 环境,发现报错的这台机器上有两个不同版本的 JDK 所以推测跟多个版本有关系.Error attaching to process: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported vers

2021-03-23 13:20:26 343

原创 Flink WindowAssigner 源码解析

当你在使用 Flink 窗口的时候有没有想过数据是怎么被划分到窗口里面的? 它是根据什么规则划分的? 相信看完这篇文章你就明白了.@PublicEvolvingpublic<W...

2021-03-21 14:53:07 101

原创 Flink SQL 如何实现列转行?

在 SQL 任务里面经常会遇到一列转多行的需求,今天就来总结一下在 Flink SQL 里面如何实现列转行的,先来看下面的一个具体案例.需求原始数据格式如下:namedataJasonLe...

2021-03-14 12:36:17 1850

原创 想要加微信群的先加我微信拉你们进群

2021-02-02 21:52:35 222

原创 Flink SQL 结合 HiveCatalog 使用

Flink 支持 HiveCatalog 作为表元数据持久化的介质,在生产环境我们一般采用 HiveCatalog 来管理元数据, 这样的好处是不需要重复使用 DDL 创建表,只需要关心...

2021-01-23 16:20:00 820 6

原创 2020 年度总结

2020 年度总结2020 年是最特别的一年,也是最不平凡的一年,也是过的最快的一年,一场突如其来的疫情改变了很多人乃至整个社会的节奏,这一年来最大的改变就是出门戴口罩,几乎每天都在戴口罩,特别是夏天戴口罩是非常的难受.真怀念以前不用戴口罩的时候.希望疫情可以早点过去,回到不戴口罩的时候.今年对于我来说也是事情最多的一年,大家可能会发现今年我的博客,知识星球,公众号都没怎么更新,主要是因为事情比较多,太忙了,所以都没时间更新.今年的几件大事 买房 去女朋友家 安排双方父

2021-01-17 14:39:09 225 5

原创 Flink SQL 解析嵌套的 JSON 数据

在日常的开发中,最常用的数据格式是 JSON ,并且有的时候 JSON 的格式是非常复杂的(嵌套的格式),那在 Flink SQL 中进行解析的时候也会相当麻烦一点,下面将会演示如何在 ...

2021-01-15 12:00:00 2896

原创 [xshell6过期解决方案]xshell6评估过期 如何继续使用(亲测有效) 100%成功

过完年来上班第一天打开xshell提示评估过期了,很少尴尬,搞了老半天才激活,记录一下激活的步骤:1.我之前下载的是evaluation版本,是有期限的,换一个家庭版的,下载地址:https://www.netsarang.com/zh/xshell-download/然后按照下面的图片指示依次执行:中间的邮件必须填写,因为会给我们发邮件确认.然后点击邮件里面的连...

2020-12-26 10:51:44 42007 16

原创 Flink SQL 中动态修改 DDL 的属性

Flink 支持使用 HiveCatalog 来管理 Flink 的元数据信息, HiveCatalog 通过授权用户仅创建一次表和其他元数据对象,这样就避免了重复创建 kafka 流表...

2020-12-20 10:00:00 1764 11

原创 Apache Flink 1.12.0 升级说明

就在刚才 Apache Flink 社区宣布 Flink 1.12.0 版本正式发布了,从这个版本开始真正的流批一体又往前迈了一大步.Release Notes - Flink 1.12...

2020-12-11 09:00:00 3507 13

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除