![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据实时计算引擎 Flink 实战与性能优化
文章平均质量分 91
抢先一步掌握它,你就是大数据行业的领头羊
优惠券已抵扣
余额抵扣
还需支付
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
zhisheng_blog
这个作者很懒,什么都没留下…
展开
-
如何收集 Yarn/K8s 集群中的 Flink 任务日志?
背景不管是 Flink On Yarn 还是 On k8s,如果任务正常运行,我们是可以通过 Flink Web UI 去查看 JobManager 和 TaskManager 日志,虽然日志量大的时候去不同的 TaskManager 找日志有点困难(如何快速知道日志在哪个 TaskManager 上;在 TaskManager 里面可能有多个滚动的日志文件,如何快速找到 root cause 异常;如果 TaskManager OOM 掉了该容器的日志就看不到了),但是起码给了一个可以看日志的途径。熟原创 2023-03-24 14:26:26 · 707 阅读 · 1 评论 -
Flink 整合 Apollo,动态更新 Flink 作业配置
在上一篇讲解 Flink 与 Nacos 整合的视频 中,讲过了常见的几种更新配置的方法,最常使用的可能就是通过广播流的方式,相信看完上个视频的,估计对整合 Nacos 做动态更新配置应...原创 2020-02-26 09:03:00 · 1425 阅读 · 0 评论 -
Flink 能否动态更改 Checkpoint 配置?
前段时间在社区邮件中看到有人提问是否可以动态开启 Checkpoint,昨天在钉钉群中又看到有个同学在问能够动态调整 Checkpoint 的时间,其实不仅仅是这些,在社区邮件和群里经常...原创 2020-03-01 09:36:15 · 917 阅读 · 0 评论 -
基于 Apache Flink 的实时监控告警系统
点击上方“zhisheng”,选择“设为星标”后台回复”666“获取公众号专属资料本文首发自本人的知识星球《Flink 精进学习》,文末点击阅读原文可以查看对应讲解的视频在如今微服务、云...原创 2020-04-16 09:01:00 · 7594 阅读 · 0 评论 -
Apache Flink 1.10 TaskManager 内存管理优化
点击上方“zhisheng”,选择“设为星标”后台回复"666",获取最新资料Apache Flink 1.10 对 TaskManager 的内存模型和 Flink 应...原创 2020-05-16 11:50:26 · 578 阅读 · 0 评论 -
从 0 到 1 搭建一套 Flink 的监控系统
点击上方“zhisheng”,选择“设为星标”后台回复"666",获取新资料之前讲解了 JobManager、TaskManager 和 Flink Job 的监控,以及...原创 2020-06-18 08:31:00 · 4560 阅读 · 1 评论 -
如何生成 Flink 作业的交互式火焰图?
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章前言Flink 是目前最流行的大数据及流式计算框架之一,用户可以使用 Java/...原创 2020-10-06 19:31:00 · 532 阅读 · 0 评论 -
用了 History Server,妈妈再也不用担心我的 Flink 作业半夜挂了
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章前言Flink On YARN 默认作业挂了之后打开的话,是一个如下这样的页面:...原创 2020-10-15 08:41:00 · 889 阅读 · 0 评论 -
实时平台如何管理多个 Flink 版本?(上)
为啥会出现多个版本?Flink 社区本身迭代速度非常快,目前阿里云有一大波的人专职做 Flink 开源,另外还拥有活跃的社区贡献者,所以功能开发较快,bug 修复速度较快,几乎每 4 个月...原创 2021-09-30 08:41:00 · 547 阅读 · 1 评论 -
Flink 1.11 日志文件该如何配置?
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章Flink 1.11 之前在 Flink 1.11 之前,Flink 使用的日志...原创 2020-08-04 08:51:00 · 1945 阅读 · 2 评论 -
Flink Hive Source 并行度推断源码解析
批读 HiveHiveOptions 中有两个配置publicstaticfinalConfigOption<Boolean>TABLE_EXEC_HIVE_INFER_SOURCE_PARALLELISM=key("table.exec.hive.infer-source-parallelism")...原创 2022-05-10 09:11:00 · 779 阅读 · 0 评论 -
Flink Iceberg Source 并行度推断源码解析
Flink Hive Source 并行度推断源码解析批读 IcebergIceberg 提供了两个配置:publicstaticfinalConfigOption<Boolean>TABLE_EXEC_ICEBERG_INFER_SOURCE_PARALLELISM=ConfigOptions.key("table.exec.iceberg....原创 2022-05-11 09:11:00 · 687 阅读 · 0 评论 -
Flink 1.12 Release 文档解读
注:本文翻译的时候还没正式 Release 1.12,处于 1.12.0-rc3 阶段Flink 从入门到精通系列文章本文的 Release 文档描述了在 Flink 1.11 和 F...原创 2020-12-06 21:30:49 · 3182 阅读 · 3 评论 -
Flink Forward Asia 2020 第一天小记
13 号上午主会场阿里王峰拥抱开源,参与开源,贡献开源unaligned checkpoint:checkpoint 优化,在反压的情况下优化 checkpoint 成功failover...原创 2020-12-13 21:43:52 · 183 阅读 · 0 评论 -
如何在 IDEA 中 Debug Flink 1.12 SQL Client 源码?
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章前言此文章主要如何配置使能在idea 中debug模式启动flink sqlCl...原创 2020-12-29 08:41:00 · 635 阅读 · 0 评论 -
Flink Forward Asia 2020 大会精彩总结
作者:王峰(莫问)、梅源剩喜漫天飞玉蝶,不嫌幽谷阻黄莺。2020 年是不寻常的一年,Flink 也在这一年迎来了新纪元。12 月13 – 15 号,2020 Flink Forward...原创 2020-12-25 08:41:00 · 214 阅读 · 0 评论 -
Flink 最佳实践——如何设置 Flink Job RestartStrategy(重启策略)?
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章本章将介绍两个最佳实践,第一个是如何合理的配置重启策略,笔者通过自己的亲身经历来...原创 2021-01-07 08:50:41 · 526 阅读 · 0 评论 -
最佳实践——如何使用 Flink ParameterTool 读取配置?
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章在使用 Flink 中不知道你有没有觉得配置的管理很不方便,比如像算子的并行度配...原创 2021-01-10 18:32:00 · 1850 阅读 · 1 评论 -
基于 Flink 的动态欺诈检测系统(上)
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章前言在本系列博客中,你将学习到三种构建 Flink 应用程序的强大案例:动态更新...原创 2021-01-22 09:29:00 · 643 阅读 · 0 评论 -
基于 Flink 的动态欺诈检测系统(中)
点击上方 "zhisheng"关注,星标或置顶一起成长Flink 从入门到精通系列文章前言在上一篇博客中,我们对欺诈检测引擎的目标和所需要的功能进行了描述,我们还描述...原创 2021-01-24 18:02:00 · 163 阅读 · 0 评论 -
如何查看 Flink 作业执行计划?
当一个应用程序需求比较简单的情况下,数据转换涉及的 operator(算子)可能不多,但是当应用的需求变得越来越复杂时,可能在一个 Job 里面算子的个数会达到几十个、甚至上百个,在如此多...原创 2021-03-25 21:01:00 · 646 阅读 · 1 评论 -
基于 Flink 的动态欺诈检测系统(下)
介绍在本系列的前两篇文章中,我们描述了如何基于动态更新配置(欺诈检测规则)来实现灵活的数据流分区,以及如何利用 Flink 的 Broadcast 机制在运行时在相关算子之间分配处理配置。...原创 2021-07-04 18:41:00 · 195 阅读 · 0 评论 -
宕机一台机器,结果一百多个 Flink 作业挂了
背景因宕机了一台物理机器,实时集群不少作业发生 failover,其中大部分作业都能 failover 成功,某个部门的部分作业一直在 failover,始终未成功,到 WebUI 查看作...原创 2021-11-14 18:31:00 · 1427 阅读 · 0 评论 -
如何提高 Flink K8s 集群资源利用率?
问题在 Flink on K8s 默认提交作业的命令下,我们会指定作业的 JM/TM 的 CPU 和 Memory,最后作业生成的 pod 它的 CPU/Memory 的 request/limit 都是一样的资源,但是作业真实运行时使用的资源远达不到 limit 的值,这样就会造成机器资源浪费(水位不高,但是机器又不能再申请 pod)。比如下面命令:(指定了 TM 的资...原创 2022-03-30 09:10:00 · 2712 阅读 · 0 评论 -
公司到底需不需要引入实时计算引擎?
实时计算需求大数据发展至今,数据呈指数倍的增长,对实效性的要求也越来越高,所以你可能接触到下面这类需求会越来越多。小田,你看能不能做个监控大屏实时查看促销活动销售额(GMV)?小朱,搞促销活动的时候能不能实时统计下网站的 PV/UV 啊?小鹏,我们现在搞促销活动能不能实时统计销量 Top5 啊?小李,怎么回事啊?现在搞促销活动结果服务器宕机了都没告警,能不能加一个?小刘,服务器...原创 2020-09-22 12:00:20 · 330 阅读 · 0 评论 -
彻底了解大数据实时计算框架 Flink
在 1.1 节中讲解了日常开发常见的实时需求,然后分析了这些需求的实现方式,接着对比了实时计算和离线计算。随着这些年大数据的飞速发展,也出现了不少计算的框架(Hadoop、Storm、Spark、Flink)。在网上有人将大数据计算引擎的发展分为四个阶段。第一代:Hadoop 承载的 MapReduce第二代:支持 DAG(有向无环图)框架的计算引擎 Tez 和 Oozie,主要还是批处理任...原创 2020-09-22 12:00:19 · 860 阅读 · 0 评论 -
大数据框架 Flink、Blink、Spark Streaming、Structured Streaming 和 Storm 之间的区别
在 1.2 节中已经跟大家详细介绍了 Flink,那么在本节就主要 Blink、Spark Streaming、Structured Streaming 和 Storm 的区别。FlinkFlink 是一个针对流数据和批数据分布式处理的引擎,在某些对实时性要求非常高的场景,基本上都是采用 Flink 来作为计算引擎,它不仅可以处理有界的批数据,还可以处理无界的流数据,在 Flink 的设计愿想...原创 2020-09-22 12:00:17 · 1284 阅读 · 0 评论 -
Flink 环境准备
通过前面几篇文章,相信你已经对 Flink 的基础概念等知识已经有一定了解,现在是不是迫切的想把 Flink 给用起来?先别急,我们先把电脑的准备环境给安装好,这样后面才能更愉快地玩耍。废话不多说了,直奔主题。因为后面可能用到的有:Kafka、MySQL、ElasticSearch 等,另外像 Flink 编写程序还需要依赖 Java,还有就是我们项目是用 Maven 来管理依赖的,所以这篇文章...原创 2020-09-22 12:00:16 · 189 阅读 · 0 评论 -
Flink 环境搭建
在 2.1 节中已经将 Flink 的准备环境已经讲完了,本篇文章将带大家正式开始接触 Flink,那么我们得先安装一下 Flink。Flink 是可以在多个平台(Windows、Linux、Mac)上安装的。在开始写本书的时候最新版本是 1.8 版本,但是写到一半后更新到 1.9 了(合并了大量 Blink 的新特性),所以笔者又全部更新版本到 1.9,书籍后面也都是基于最新的版本讲解与演示。...原创 2020-09-22 12:00:14 · 1392 阅读 · 0 评论 -
Flink WordCount 应用程序
在 2.2 中带大家讲解了下 Flink 的环境安装,这篇文章就开始我们的第一个 Flink 案例实战,也方便大家快速开始自己的第一个 Flink 应用。大数据里学习一门技术一般都是从 WordCount 开始入门的,那么我还是不打破常规了,所以这篇文章我也将带大家通过 WordCount 程序来初步了解 Flink。Maven 创建项目Flink 支持 Maven 直接构建模版项目,你在终端...原创 2020-09-22 12:00:13 · 191 阅读 · 0 评论 -
Flink 实时处理 Socket 数据
在 2.3 中讲解了 Flink 最简单的 WordCount 程序的创建、运行结果查看和代码分析,这篇文章继续带大家来看一个入门上手的程序:Flink 处理 Socket 数据。IDEA 创建项目使用 IDEA 创建新的 module,结构如下:├── pom.xml└── src ├── main │ ├── java │ │ └── com ...原创 2020-09-22 12:00:12 · 872 阅读 · 0 评论 -
Flink 多种时间语义对比
Flink 在流应用程序中支持不同的 Time 概念,就比如有 Processing Time、Event Time 和 Ingestion Time。下面我们一起来看看这三个 Time。Processing TimeProcessing Time 是指事件被处理时机器的系统时间。如果我们 Flink Job 设置的时间策略是 Processing Time 的话,那么后面所有基于时间的操作...原创 2020-09-22 12:00:10 · 357 阅读 · 0 评论 -
Flink Window 基础概念与实现原理
目前有许多数据分析的场景从批处理到流处理的演变, 虽然可以将批处理作为流处理的特殊情况来处理,但是分析无穷集的流数据通常需要思维方式的转变并且具有其自己的术语,例如,“windowing(窗口化)”、“at-least-once(至少一次)”、“exactly-once(只有一次)” 。对于刚刚接触流处理的人来说,这种转变和新术语可能会非常混乱。 Apache Flink 是一个为生产环境而生的...原创 2020-09-22 12:00:09 · 179 阅读 · 0 评论 -
数据转换必须熟悉的 Operator(算子)
在 Flink 应用程序中,无论你的应用程序是批程序,还是流程序,都是上图这种模型,有数据源(source),有数据下游(sink),我们写的应用程序多是对数据源过来的数据做一系列操作,总结如下。Source: 数据源,Flink 在流处理和批处理上的 source 大概有 4 类:基于本地集合的 source、基于文件的 source、基于网络套接字的 source、自定义的 source...原创 2020-09-22 12:00:07 · 638 阅读 · 0 评论 -
如何使用 DataStream API 来处理数据?
在 3.3 节中讲了数据转换常用的 Operators(算子),然后在 3.2 节中也讲了 Flink 中窗口的概念和原理,那么我们这篇文章再来细讲一下 Flink 中的各种 DataStream API。我们先来看下源码里面的 DataStream 大概有哪些类呢?可以发现其实还是有很多的类,只有熟练掌握了这些 API,我们才能在做数据转换和计算的时候足够灵活的运用开来(知道何时该选用哪种...原创 2020-09-22 12:00:06 · 567 阅读 · 0 评论 -
Flink WaterMark 详解及结合 WaterMark 处理延迟数据
在 3.1 节中讲解了 Flink 中的三种 Time 和其对应的使用场景,然后在 3.2 节中深入的讲解了 Flink 中窗口的机制以及 Flink 中自带的 Window 的实现原理和使用方法。如果在进行 Window 计算操作的时候,如果使用的时间是 Processing Time,那么在 Flink 消费数据的时候,它完全不需要关心的数据本身的时间,意思也就是说不需要关心数据到底是延迟数据...原创 2020-09-22 12:00:04 · 674 阅读 · 0 评论 -
Flink 常用的 Source 和 Sink Connectors 介绍
通过前面我们可以知道 Flink Job 的大致结构就是 Source ——> Transformation ——> Sink。那么这个 Source 是什么意思呢?我们下面来看看。Data Source 介绍Data Source 是什么呢?就字面意思其实就可以知道:数据来源。Flink 做为一款流式计算框架,它可用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做...原创 2020-09-22 12:00:03 · 629 阅读 · 0 评论 -
Flink Connector Kafka 使用和剖析
在前面 3.6 节中介绍了 Flink 中的 Data Source 和 Data Sink,然后还讲诉了自带的一些 Source 和 Sink 的 Connector。本篇文章将讲解一下用的最多的 Connector —— Kafka,带大家利用 Kafka Connector 读取 Kafka 数据,做一些计算操作后然后又通过 Kafka Connector 写入到 kafka 消息队列去。...原创 2020-09-22 12:00:01 · 517 阅读 · 0 评论 -
如何自定义 Flink Connectors(Source 和 Sink)?
在前面文章 3.6 节中讲解了 Flink 中的 Data Source 和 Data Sink,然后介绍了 Flink 中自带的一些 Source 和 Sink 的 Connector,接着我们还有几篇实战会讲解了如何从 Kafka 处理数据写入到 Kafka、ElasticSearch 等,当然 Flink 还有一些其他的 Connector,我们这里就不一一介绍了,大家如果感兴趣的话可以去官...原创 2020-09-22 11:59:59 · 402 阅读 · 0 评论 -
如何使用 Flink Connectors —— ElasticSearch?
准备环境和依赖ElasticSearch 安装因为在 2.1 节中已经讲过 ElasticSearch 的安装,这里就不做过多的重复,需要注意的一点就是 Flink 的 ElasticSearch Connector 是区分版本号的。所以添加依赖的时候要区分一下,根据你安装的 ElasticSearch 来选择不一样的版本依赖,另外就是不同版本的 ElasticSearch 还会导致下面的...原创 2020-09-22 11:59:58 · 818 阅读 · 0 评论