王知无(import_bigdata)
微信搜:import_bigdata
GitHub搜:https://github.com/wangzhiwubigdata/God-Of-BigData
展开
-
第四十二篇:Flink面试方案设计篇
你好,欢迎来到第 42 课时,本课时我们主要讲解“Flink 面试方案设计篇”。Flink 的方案设计面试题目在面试中,是面试官了解我们项目的最直接的问题,它通常体现在面试者回答自己的项目整体是如何设计的?Flink 在你的项目中起到什么作用?有没有在应用过程中对 Flink 有一些定制开发等。如何介绍自己的项目,为什么技术选型 Flink 也代表我们对于 Flink 框架的了解程度,我们本课时将介绍 Flink 典型的应用场景和整体的方案设计。面试题1:基于 Flink 的实时数据仓库是如何做的?原创 2021-07-24 16:41:38 · 837 阅读 · 0 评论 -
第四十一篇:Flink 面试源码篇
你好,欢迎来到第 41 课时,本课时我们主要讲解“Flink 面试-源码篇”。Flink 的源码篇包含了 Flink 的核心代码实现、Job 提交流程、数据交换、分布式快照机制、Flink SQL 的原理等考察点。你应该记得,我们在前面近 40 个课时中几乎每一课时都有一定的篇幅是源码阅读,源码部分的考察是面试时十分重要的一关,如果你对 Flink 的源码有一定的研究而不仅仅停留在使用阶段,那么你的面试成功率将得到大幅提升。我们本课时将把 Flink 面试中源码部分最高频的考点列举出来。面试题 1:请原创 2021-07-24 16:37:37 · 651 阅读 · 0 评论 -
第四十篇:Flink 面试进阶篇
你好,欢迎来到第 40 课时,本课时我们主要讲解“Flink 面试-进阶篇”。Flink 面试进阶篇主要包含了 Flink 中的数据传输、容错机制、序列化、数据热点、反压等实际生产环境中遇到的问题等考察点。这一阶段主要考察我们对 Flink 掌握的深度,也是给面试官留下好印象的关键环节。面试题1:请谈谈你对 Flink Table & SQL 的了解情况?以及 TableEnvironment 这个类有什么样的作用?这道题考察的是对 Flink Table & SQL 的掌握情况,要知原创 2021-07-24 16:32:46 · 513 阅读 · 0 评论 -
第三十九篇:Flink 面试基础篇
你好,欢迎来到第 39 课时,本课时我们主要讲解“Flink 面试-基础篇”。到目前为止,关于 Flink 的学习我们就告一段落了,接下来我们将进入最后一个面试模块的学习。在当前大背景下,面试这一关是求职者必须要面对的,也能从侧面考察对 Flink 的掌握情况,最后一模块将结合部分实际面试中出现的问题,进行详细分析,帮助大家顺利拿到 Offer。最后一个面试模块分为了 4 个课时:Flink 面试基础篇,包含了 Flink 的整体介绍、核心概念、算子等考察点;Flink 面试进阶篇,包含了 Fli原创 2021-07-24 16:29:10 · 505 阅读 · 0 评论 -
第三十八篇:Flink 调用 CEP 实现报警功能完整实现
你好,欢迎来到第 38 课时,本课时我们主要讲解“Flink 调用 CEP 实现报警功能的完整实现”。在上一课时中,我们详细讲解了 Flink CEP 中 Pattern 的分类,需要根据实际生产环境来选择单个模式、组合模式或者模式组。在前面的课程中我们提到的三种典型场景下,分别根据业务需要实现了 Pattern 的定义,也可以根据自定义的 Pattern 检测到异常事件。那么接下来就需要根据检测到的异常事件发送告警,这一课将从这三种场景入手,来讲解完整的代码实现逻辑。连续登录场景在这个场景中,我们原创 2021-07-24 16:25:48 · 816 阅读 · 0 评论 -
第三十七篇:自定义 Pattern 和报警规则
你好,欢迎来到第 37 课时,本课时我们主要讲解“自定义 Pattern 和报警规则”。在上一课时提过,PatternStream 是 Flink CEP 对模式匹配后流的抽象和定义,它把 DataStream 和 Pattern 组合到一起,并且基于 PatternStream 提供了一系列的方法,比如 select、process 等。Flink CEP 的核心在于模式匹配,对于不同模式匹配特性的支持,往往决定相应的 CEP 框架是否能够得到广泛应用。那么 Flink CEP 对模式提供了哪些支持呢原创 2021-07-24 16:21:48 · 607 阅读 · 0 评论 -
第三十六篇:Flink CEP 源码解析和自定义消息事件
你好,欢迎来到第 36 课时,本课时我们主要讲解“Flink CEP 源码解析和自定义消息事件”。我们在上一课时中讲了 CEP 的基本原理并且用官网的案例介绍了 CEP 的简单应用。在 Flink CEP 中存在多个比较晦涩的概念,如果你对于这些概念理解有困难,我们可以把:创建系列 Pattern,然后利用 NFACompiler 将 Pattern 进行拆分并且创建出 NFA,NFA 包含了 Pattern 中的各个状态和各个状态间转换的表达式。这整个过程我们可以把 Flink CEP 的使用类比为正则原创 2021-07-24 16:18:58 · 554 阅读 · 0 评论 -
第三十五篇:Flink CEP 简介和项目背景
你好,欢迎来到第 35 课时,从这一课时开始我们将进入“Flink CEP 实时预警系统”的学习,本课时先介绍项目的背景、架构设计。背景我们在第 11 课时“Flink CEP 复杂事件处理”已经介绍了 Flink CEP 的原理,它是 Flink 提供的复杂事件处理库,也是 Flink 提供的一个非常亮眼的功能,当然更是 Flink 中最难以理解的部分之一。Complex Event Processing(CEP)允许我们在源源不断的数据中通过自定义的模式(Pattern)检测并且获取需要的数据,还原创 2021-07-24 16:14:42 · 575 阅读 · 0 评论 -
第三十四篇:Flink 和 Redis/MySQL/HBase整合实现 Flink Sink
你好,欢迎来到第 34 课时,本课时我们主要讲解“Flink 和 Redis/MySQL/HBase 整合实现 Flink Sink”。上一课时我们使用了 3 种方法进行了 PV 和 UV 的计算,分别是全窗口内存统计、使用分组和过期数据剔除、使用 BitMap / 布隆过滤器。到此为止我们已经讲了从数据清洗到水印、窗口设计,PV 和 UV 的计算,接下来需要把结果写入不同的目标库供前端查询使用。下面我们分别讲解 Flink 和 Redis/MySQL/HBase 是如何整合实现 Flink Sink原创 2021-07-24 16:12:47 · 863 阅读 · 2 评论 -
第三十三篇:Flink 计算 PV、UV 代码实现
你好,欢迎来到第 33 课时,本课时我们主要讲解“Flink 计算 PV、UV 代码实现”。上一课时我们学习了 Flink 消费 Kafka 数据计算 PV 和 UV 的水印和窗口设计,并且定义了窗口计算的触发器,完成了计算 PV 和 UV 前的所有准备工作。接下来就需要计算 PV 和 UV 了。在当前业务场景下,根据 userId 进行统计,PV 需要对 userId 进行统计,而 UV 则需要对 userId 进行去重统计。下面我们使用不同的方法来统计 PV 和 UV。单窗口内存统计这种方法需原创 2021-07-24 16:10:30 · 1116 阅读 · 1 评论 -
第三十二篇:Flink 计算 PV、UV 时间窗口设计
你好,欢迎来到第 32 课时,本课时我们主要讲解“Flink 计算 PV、UV 中的时间窗口设计”。我们在第 31 课时中讲过,在计算 PV 和 UV 等指标前,用 Flink 将原始数据进行了清洗,清洗完毕的数据被发送到另外的 Kafka Topic 中,接下来我们只需要消费指定 Topic 的数据,然后就可以进行指标计算了。Flink 消费 Kafka 数据反序列化上一课时定义了用户的行为信息的 Java 对象,我们现在需要消费新的 Kafka Topic 信息,并且把序列化的消息转化为用户的行为原创 2021-07-24 16:07:32 · 751 阅读 · 0 评论 -
第三十一篇:Kafka 日志数据清洗和发送
你好,欢迎来到第 31 课时,本课时我们主要讲解“Kafka 日志数据清洗和发送”。第 29 课时讲过,在计算 PV 和 UV 的过程中关键的一个步骤就是进行日志数据的清洗。实际上在其他业务,比如订单数据的统计中,我们也需要过滤掉一些“脏数据”。所谓“脏数据”是指与我们定义的标准数据结构不一致,或者不需要的数据。因为在数据清洗 ETL 的过程中经常需要进行数据的反序列化解析和 Java 类的映射,在这个映射过程中“脏数据”会导致反序列化失败,从而使得任务失败进行重启。在一些大作业中,重启会导致任务不稳定原创 2021-07-24 16:04:21 · 845 阅读 · 2 评论 -
第三十篇:Flume 和 Kafka 整合和部署
你好,欢迎来到第 30 课时,本课时我们主要讲解“Flume 和 Kafka 整合和部署”的学习。Flume 概述Flume 是 Hadoop 生态圈子中的一个重要组件,在上一课时中提过,它是一个分布式的、高可靠的、高可用的日志采集工具。Flume 具有基于流式数据的简单灵活的架构,同时兼具高可靠性、高可用机制和故障转移机制。当我们使用 Flume 收集数据的速度超过下游的写入速度时,Flume 会自动做调整,使得数据的采集和推送能够平稳进行。Flume 支持多路径采集、多管道数据接入和多管道数据输原创 2021-07-24 15:21:54 · 379 阅读 · 0 评论 -
第二十九篇:项目背景和实时处理系统架构设计
你好,欢迎来到第 29 课时,从这一课时开始我们进入“Flink 实时统计 PV、UV”项目的学习。本课时先介绍实时统计项目的背景、架构设计和技术选型。背景PV(Page View,网站的浏览量)即页面的浏览次数,一般用来衡量网站用户访问的网页数量。我们可以简单地认为,一个用户每次打开一个页面便会记录一次 PV,也就是说,PV 是指页面刷新的次数,刷新一次页面,记录一次 PV。在互联网项目中,PV 的度量方法是指发起一次请求(Request)从浏览器到网络服务器,网络服务器在接收到请求后会将对应的网页原创 2021-07-24 14:48:00 · 370 阅读 · 0 评论 -
第二十八篇:Flink TopN 功能设计和实
你好,欢迎来到第 28 课时,本课时主要讲解 Flink 中的 TopN 功能的设计和实现。TopN 在我们的业务场景中是十分常见的需求,比如电商场景中求热门商品的销售额、微博每天的热门话题 TopN、贴吧中每天发帖最多的贴吧排名等。TopN 可以进行分组排序,也可以按照需要全局排序,比如若要计算用户下单总金额的 Top 10 时,就需要进行全局排序,然而当我们计算每个城市的 Top10 时就需要将订单按照城市进行分组然后再进行计算。下面我们就详细讲解 TopN 的设计和实现。整体设计我们下面使用订原创 2021-07-24 14:23:08 · 761 阅读 · 0 评论 -
第二十七篇:Flink Redis Sink 实现
你好,欢迎来到第 27 课时,本课时主要讲解 Flink 使用 Redis 作为 Sink 的设计和实现。我们在第 12 课时“Flink 常用的 Source 和 Connector”中提过 Flink 提供了比较丰富的用来连接第三方的连接器,可以在官网中找到 Flink 支持的各种各样的连接器。此外,Flink 还会基于 Apache Bahir 发布一些 Connector,其中就有我们非常熟悉的 Redis。很多人在 Flink 项目中访问 Redis 的方法都是自己进行实现的,我们也可以使用原创 2021-07-24 14:04:02 · 632 阅读 · 0 评论 -
第二十六篇:Flink 中的聚合函数和累加器的设计和使用
你好,欢迎来到第 26 课时,本课时主要讲解 Flink 中聚合函数和累加器的设计和使用。我们在第 08 课时中提到了 Flink 所支持的窗口和时间类型,并且在第 25 课时中详细讲解了如何设置时间戳提取器和水印发射器。实际的业务中,我们在使用窗口的过程中一定是基于窗口进行的聚合计算。例如,计算窗口内的 UV、PV 等,那么 Flink 支持哪些基于窗口的聚合函数?累加器又该如何实现呢?Flink 支持的窗口函数我们在定义完窗口以后,需要指定窗口上进行的计算。目前 Flink 支持的窗口函数包含原创 2021-07-24 13:32:54 · 712 阅读 · 0 评论 -
第二十五篇:Flink 中 Watermark 的定义和使用
你好,欢迎来到第 25 课时,本课时主要讲解 Flink 中 Watermark 的定义和使用。第 08 课时我们提过窗口和时间的概念,Flink 框架支持事件时间、摄入时间和处理时间三种。Watermark(水印)的出现是用于处理数据从 Source 产生,再到转换和输出,在这个过程中由于网络和反压的原因导致了消息乱序问题。那么在实际的开发过程中,如何正确地使用 Watermark 呢?使用 Watermark 必知必会Watermark 和事件时间事件时间(Event Time)是数据产生的时原创 2021-07-24 13:29:40 · 818 阅读 · 0 评论 -
第二十四篇:Flink 消费 Kafka 数据开发
你好,欢迎来到第 24 课时,本课时主要讲解 Flink 消费 Kafka 数据开发。在上一课时中我们提过在实时计算的场景下,绝大多数的数据源都是消息系统,而 Kafka 从众多的消息中间件中脱颖而出,主要是因为高吞吐、低延迟的特点;同时也讲了 Flink 作为生产者像 Kafka 写入数据的方式和代码实现。这一课时我们将从以下几个方面介绍 Flink 消费 Kafka 中的数据方式和源码实现。Flink 如何消费 KafkaFlink 在和 Kafka 对接的过程中,跟 Kafka 的版本是强相关的原创 2021-07-24 12:52:00 · 836 阅读 · 0 评论 -
第二十三篇:Mock Kafka 消息并发送
你好,欢迎来到第 23 课时,本课时主要讲解 Kafka 的一些核心概念,以及模拟消息并发送。大数据消息中间件的王者——Kafka在上一课时中提过在实时计算的场景下,我们绝大多数的数据源都是消息系统。所以,一个强大的消息中间件来支撑高达几十万的 QPS,以及海量数据存储就显得极其重要。Kafka 从众多的消息中间件中脱颖而出,主要是因为高吞吐、低延迟的特点;另外基于 Kafka 的生态越来越完善,各个实时处理框架包括 Flink 在消息处理上都会优先进行支持。在第 14 课时“Flink Exactl原创 2021-07-24 12:45:29 · 1271 阅读 · 0 评论 -
第二十二篇:项目背景和整体架构设计
你好,欢迎来到第 22 课时,从这一课时开始我们进入实战课程的学习。本项目是一个模拟实时电商数据大屏,本课时先介绍该项目的背景、架构设计和技术选型。背景我们在第 01 课时“Flink 的应用场景和架构模型”中提到过,Flink 应用最广的一个场景便是实时计算大屏。每年的双十一、618 电商大促等,各大公司的实时数据战报和数据大屏是一道亮丽的风景线。实时大屏对数据有非常高的稳定性和精确性要求,特别是面向公众第三方的数据大屏,同时要求高吞吐、低延迟、极高的稳定性和绝对零误差。随时电商大促的成交记录一次原创 2021-07-24 12:40:43 · 413 阅读 · 0 评论 -
第二十一篇:Flink 在实时计算平台和实时数据仓库中的应用
你好,欢迎来到第 21 课,本课时我们主要讲解如何基于 Flink 打造实时计算平台和实时数据仓库。基于 Flink 的实时计算平台大部分公司随着业务场景的不断丰富,同时在业界经过多年的实践检验,基于 Hadoop 的离线存储体系已经足够成熟。但是离线计算天然时效性不强,一般都是隔天级别的滞后,业务数据随着实践的推移,本身的价值就会逐渐减少。越来越多的场景需要使用实时计算,在这种背景下实时计算平台的需求应运而生。架构选型我们在第 03 课时“Flink 的编程模型与其他框架比较”中,提到过 Flin原创 2021-07-24 12:14:56 · 574 阅读 · 0 评论 -
第二十篇:Flink 高级应用之海量数据高效去重
你好,欢迎来到第 20 课,本课时我们主要讲解 Flink 中的海量数据高效去重。消除重复数据是我们在实际业务中经常遇到的一类问题。在大数据领域,重复数据的删除有助于减少存储所需要的存储容量。而且在一些特定的业务场景中,重复数据是不可接受的,例如,精确统计网站一天的用户数量、在事实表中统计每天发出的快递包裹数量。在传统的离线计算中,我们可以直接用 SQL 通过 DISTINCT 函数,或者数据量继续增加时会用到类似 MapReduce 的思想。那么在实时计算中,去重计数是一个增量和长期的过程,并且不同的场原创 2021-07-24 12:09:13 · 1167 阅读 · 0 评论 -
第十九篇:Flink 如何做维表关联
你好,欢迎来到第 19 课时,本课时主要讲解 Flink 中如何进行维度表的关联。在实际生产中,我们经常会有这样的需求,需要以原始数据流作为基础,然后关联大量的外部表来补充一些属性。例如,我们在订单数据中,希望能得到订单收货人所在省的名称,一般来说订单中会记录一个省的 ID,那么需要根据 ID 去查询外部的维度表补充省名称属性。在 Flink 流式计算中,我们的一些维度属性一般存储在 MySQL/HBase/Redis 中,这些维表数据存在定时更新,需要我们根据业务进行关联。根据我们业务对维表数据关联的原创 2021-07-24 12:05:17 · 1742 阅读 · 0 评论 -
第十八篇:如何进行生产环境作业监控
你好,欢迎来到第 18 课时,本课时主要讲解如何进行生产环境作业监控。在第 15 课时“如何排查生产环境中的反压问题”中提到过我们应该如何发现任务是否出现反压,Flink 的后台页面是我们发现反压问题的第一选择,其后台页面可以直观、清晰地看到当前作业的运行状态。在实际生产中,Flink 的后台页面可以方便我们对 Flink JobManager、TaskManager、执行计划、Slot 分配、是否反压等参数进行定位,对单个任务来讲可以方便地进行问题排查。但是,对于很多大中型企业来讲,我们对进群的作业原创 2021-07-24 11:59:54 · 409 阅读 · 0 评论 -
第十七篇:生产环境中的并行度和资源配置
你好,欢迎来到第 17 课时,这一课时我们主要讲解生产环境中的并行度和资源配置。在使用 Flink 处理生产实际问题时,并行度和资源的配置调优是我们经常要面对的工作之一,如何有效和正确地配置并行度是我们的任务能够高效执行的必要条件。这一课时就来看一下生产环境的并行度和资源配置问题。Flink 中的计算资源通常我们说的 Flink 中的计算资源是指具体任务的 Task。首先要理解 Flink 中的计算资源的一些核心概念,比如 Slot、Chain、Task 等,正确理解这些概念有助于开发者了解 Flin原创 2021-07-24 11:53:59 · 349 阅读 · 0 评论 -
第十六篇:如何处理生产环境中的数据倾斜问题
你好,欢迎来到第 16 课时,这一课时我们主要讲解如何处理生产环境中的数据倾斜问题。无论是对于 Flink、Spark 这样的实时计算框架还是 Hive 等离线计算框架,数据量从来都不是问题,真正引起问题导致严重后果的是数据倾斜。所谓数据倾斜,是指在大规模并行处理的数据中,其中某个运行节点处理的数据远远超过其他部分,这会导致该节点压力极大,最终出现运行失败从而导致整个任务的失败。我们在这一课时中将分析出现数据倾斜的原因,Flink 任务中最容易出现数据倾斜的几个算子并且给出解决方案。数据倾斜背景和危害原创 2021-07-24 11:32:58 · 439 阅读 · 0 评论 -
第十五篇:如何排查生产环境中的反压问题
你好,欢迎来到第 15 课时,这一课时我们主要讲解生产环境中 Flink 任务经常会遇到的一个问题,即如何处理好反压问题将直接关系到任务的资源使用和稳定运行。反压问题是流式计算系统中经常碰到的一个问题,如果你的任务出现反压节点,那么就意味着任务数据的消费速度小于数据的生产速度,需要对生产数据的速度进行控制。通常情况下,反压经常出现在促销、热门活动等场景,它们有一个共同的特点:短时间内流量陡增造成数据的堆积或者消费速度变慢。不同框架的反压对比目前主流的大数据实时处理系统都对反压问题进行了专门的处理,希望原创 2021-07-24 11:07:31 · 428 阅读 · 0 评论 -
第十四篇:Flink Exactly-once 实现原理解析
你好,欢迎来到第 14 课时,这一课时我们将讲解 Flink “精确一次”的语义实现原理,同时这也是面试的必考点。Flink 的“精确一次”处理语义是,Flink 提供了一个强大的语义保证,也就是说在任何情况下都能保证数据对应用产生的效果只有一次,不会多也不会少。那么 Flink 是如何实现“端到端的精确一次处理”语义的呢?背景通常情况下,流式计算系统都会为用户提供指定数据处理的可靠模式功能,用来表明在实际生产运行中会对数据处理做哪些保障。一般来说,流处理引擎通常为用户的应用程序提供三种数据处理语义原创 2021-07-24 11:01:50 · 412 阅读 · 0 评论 -
第十三篇:如何实现生产环境中的 Flink 高可用配置
你好,欢迎来到第 13 课时,本课时主要讲解在生产环境中如何配置 Flink 的高可用。我们在第 06 课时“Flink 集群安装部署和 HA 配置”中讲解了 Flink 的几种常见部署模式,并且简单地介绍了 HA 配置。概述事实上,集群的高可用(High Availablility,以下简称 HA)配置是大数据领域经典的一个问题。通常 HA 用来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。我们在第 03 课时“Flink 的编程模型与其他框架比较”中也提到过 Fl原创 2021-07-23 08:59:26 · 466 阅读 · 0 评论 -
第十二篇:Flink 常用的 Source 和 Connector
你好,欢迎来到第 12 课时,本课时我们主要介绍 Flink 中支持的 Source 和常用的 Connector。Flink 作为实时计算领域强大的计算能力,以及与其他系统进行对接的能力都非常强大。Flink 自身实现了多种 Source 和 Connector 方法,并且还提供了多种与第三方系统进行对接的 Connector。我们可以把这些 Source、Connector 分成以下几个大类。预定义和自定义 Source在前面的第 04 课时“Flink 常用的 DataSet 和 DataSt原创 2021-07-23 08:53:15 · 749 阅读 · 0 评论 -
第十一章:Flink CEP 复杂事件处理
你好,欢迎来到第 11 课时,这一课时将介绍 Flink 中提供的一个很重要的功能:复杂事件处理 CEP。背景Complex Event Processing(CEP)是 Flink 提供的一个非常亮眼的功能,关于 CEP 的解释我们引用维基百科中的一段话:CEP, is event processing that combines data from multiple sources to infer events or patterns that suggest more complicated原创 2021-07-21 08:59:58 · 379 阅读 · 0 评论 -
第十篇:Flink Side OutPut 分流
你好,欢迎来到第 10 课时,这一课时将介绍 Flink 中提供的一个很重要的功能:旁路分流器。分流场景我们在生产实践中经常会遇到这样的场景,需把输入源按照需要进行拆分,比如我期望把订单流按照金额大小进行拆分,或者把用户访问日志按照访问者的地理位置进行拆分等。面对这样的需求该如何操作呢?分流的方法通常来说针对不同的场景,有以下三种办法进行流的拆分。Filter 分流Filter 方法我们在第 04 课时中(Flink 常用的 DataSet 和 DataStream API)讲过,这个算子用来原创 2021-07-21 08:52:02 · 484 阅读 · 0 评论 -
第九篇:Flink 状态与容错
你好,欢迎来到第 09 课时,这一课时我们主要讲解 Flink 的状态和容错。在 Flink 的框架中,进行有状态的计算是 Flink 最重要的特性之一。所谓的状态,其实指的是 Flink 程序的中间计算结果。Flink 支持了不同类型的状态,并且针对状态的持久化还提供了专门的机制和状态管理器。状态我们在 Flink 的官方博客中找到这样一段话,可以认为这是对状态的定义:When working with state, it might also be useful to read about Fl原创 2021-07-20 23:22:22 · 343 阅读 · 0 评论 -
第八篇:Flink 窗口、时间和水印
好,欢迎来到第 08 课时,本课时主要介绍 Flink 中的时间和水印。我们在之前的课时中反复提到过窗口和时间的概念,Flink 框架中支持事件时间、摄入时间和处理时间三种。而当我们在流式计算环境中数据从 Source 产生,再到转换和输出,这个过程由于网络和反压的原因会导致消息乱序。因此,需要有一个机制来解决这个问题,这个特别的机制就是“水印”。Flink 的窗口和时间我们在第 05 课时中讲解过 Flink 窗口的实现,根据窗口数据划分的不同,目前 Flink 支持如下 3 种:滚动窗口,窗口原创 2021-07-20 23:13:06 · 387 阅读 · 0 评论 -
第七篇:Flink 常见核心概念分析
你好,欢迎来到 07 课时,本课程主要讲解 Flink 中的一些核心概念。在 Flink 这个框架中,有很多独有的概念,比如分布式缓存、重启策略、并行度等,这些概念是我们在进行任务开发和调优时必须了解的,这一课时我将会从原理和应用场景分别介绍这些概念。分布式缓存熟悉 Hadoop 的你应该知道,分布式缓存最初的思想诞生于 Hadoop 框架,Hadoop 会将一些数据或者文件缓存在 HDFS 上,在分布式环境中让所有的计算节点调用同一个配置文件。在 Flink 中,Flink 框架开发者们同样将这个特原创 2021-07-20 22:57:36 · 374 阅读 · 0 评论 -
第六篇:Flink重启策略
概述Flink支持不同的重启策略,以在故障发生时控制作业如何重启集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。如果在工作提交时指定了一个重启策略,该策略会覆盖集群的默认策略默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。常用的重启:1.......原创 2019-02-27 22:08:32 · 891 阅读 · 0 评论 -
第五篇:Flink集群部署
部署方式一般来讲有三种方式:LocalStandaloneFlink On Yarn/Mesos/K8s…单机模式参考上一篇Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用Standalone模式部署我们基于CentOS7虚拟机搭建一个3个节点的集群:角色分配:Master: 192.168.246.134Slave: 192.168.2...原创 2019-02-26 23:50:10 · 796 阅读 · 1 评论 -
第四篇:DataStreamAPI
DataStream算子将一个或多个DataStream转换为新DataStream。程序可以将多个转换组合成复杂的数据流拓扑。DataStreamAPI和DataSetAPI主要的区别在于Transformation部分。DataStream TransformationmapDataStream→DataStream用一个数据元生成一个数据元。一个map函数,它将输入流的值加倍:......原创 2019-02-25 23:46:11 · 921 阅读 · 0 评论 -
第三篇:DataSetAPI
首先我们来看一下编程结构:编程结构public class SocketTextStreamWordCount { public static void main(String[] args) throws Exception { if (args.length != 2){System.err.println("USAGE:\nSocketTextStreamWordCount &...原创 2019-02-25 23:45:29 · 732 阅读 · 0 评论