2023年12月2日
本课时主要讲解 Kafka 的一些核心概念,以及模拟消息并发送。 大数据消息中间件的王者——Kafka 在上一课时中提过在实时计算的场景下,我们绝大多数的数据源都是消息系统。所以,一个强大的消息中间件来支撑高达几十万的 QPS,以及海量数据存储就显得极其重要。 Kafka 从众多的消息中间件中脱颖而出,主要是……
阅读全文
2023年12月2日
从这一课时开始我们进入实战课程的学习。本项目是一个模拟实时电商数据大屏,本课时先介绍该项目的背景、架构设计和技术选型。 背景 我们在第 01 课时“Flink 的应用场景和架构模型”中提到过,Flink 应用最广的一个场景便是实时计算大屏。每年的双十一、618 电商大促等,各大公司的实时数据战报……
阅读全文
2023年12月2日
基于 Flink 的实时计算平台 大部分公司随着业务场景的不断丰富,同时在业界经过多年的实践检验,基于 Hadoop 的离线存储体系已经足够成熟。但是离线计算天然时效性不强,一般都是隔天级别的滞后,业务数据随着实践的推移,本身的价值就会逐渐减少。越来越多的场景需要使用实时计算,在这种背景下实时计算平台的需求……
阅读全文
2023年12月2日
本课时我们主要讲解 Flink 中的海量数据高效去重。 消除重复数据是我们在实际业务中经常遇到的一类问题。在大数据领域,重复数据的删除有助于减少存储所需要的存储容量。而且在一些特定的业务场景中,重复数据是不可接受的,例如,精确统计网站一天的用户数量、在事实表中统计每天发出的快递包裹数量。在传统……
阅读全文
2023年12月2日
在实际生产中,我们经常会有这样的需求,需要以原始数据流作为基础,然后关联大量的外部表来补充一些属性。例如,我们在订单数据中,希望能得到订单收货人所在省的名称,一般来说订单中会记录一个省的 ID,那么需要根据 ID 去查询外部的维度表补充省名称属性。 在 Flink 流式计算中,我们的一些维度属性一般存……
阅读全文
2023年12月2日
本课时主要讲解如何进行生产环境作业监控。 在第 15 课时“如何排查生产环境中的反压问题”中提到过我们应该如何发现任务是否出现反压,Flink 的后台页面是我们发现反压问题的第一选择,其后台页面可以直观、清晰地看到当前作业的运行状态。 在实际生产中,Flink 的后台页面可以方便我们对 Flink Job……
阅读全文
2023年12月2日
在使用 Flink 处理生产实际问题时,并行度和资源的配置调优是我们经常要面对的工作之一,如何有效和正确地配置并行度是我们的任务能够高效执行的必要条件。这一课时就来看一下生产环境的并行度和资源配置问题。 Flink 中的计算资源 通常我们说的 Flink 中的计算资源是指具体任务的 Task。首先要理解 Flink 中的计算资源的……
阅读全文
2023年12月2日
这一课时我们主要讲解如何处理生产环境中的数据倾斜问题。 无论是对于 Flink、Spark 这样的实时计算框架还是 Hive 等离线计算框架,数据量从来都不是问题,真正引起问题导致严重后果的是数据倾斜。所谓数据倾斜,是指在大规模并行处理的数据中,其中某个运行节点处理的数据远远超过其他部分,这会导……
阅读全文
2023年12月2日
这一课时我们主要讲解生产环境中 Flink 任务经常会遇到的一个问题,即如何处理好反压问题将直接关系到任务的资源使用和稳定运行。 反压问题是流式计算系统中经常碰到的一个问题,如果你的任务出现反压节点,那么就意味着任务数据的消费速度小于数据的生产速度,需要对生产数据的速度进行控制。通常情况下,反……
阅读全文
2023年12月2日
这一课时我们将讲解 Flink “精确一次”的语义实现原理,同时这也是面试的必考点。 Flink 的“精确一次”处理语义是,Flink 提供了一个强大的语义保证,也就是说在任何情况下都能保证数据对应用产生的效果只有一次,不会多也不会少。 那么 Flink 是如何实现“端到端的精确一次处理”语义的呢? 背景 通常情况下,流式……
阅读全文