Flink
零基础上手编写Flink教程
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
扛麻袋的少年
得过且过,一天又一天
展开
-
Flink教程
Flink 学习路线系列Flink笔记(一):Flink介绍Flink笔记(二):Flink环境搭建(standalone模式)Flink笔记(三):Flink 提交任务的两种方式Flink笔记(四):Java 编写Flink实时任务(WordCount 示例)Flink笔记(五):Windows/Linux 开启端口监听Flink笔记(六):如何将我们编写的Flink任务打包到集群...原创 2020-02-27 15:39:05 · 4919 阅读 · 6 评论 -
Flink介绍
Flink学习笔记(一):随着5G时代的到来,未来都将会是万物互联,各种各样的设备都会与网络连接起来。未来有无人驾驶、很多的设备都能接入到5G,会有大量的数据产生。 以后这些数据都将需要做实时分析,有人把Flink归类为第三代大数据引擎。第一代:Hadoop...原创 2020-01-21 10:29:13 · 2319 阅读 · 2 评论 -
Flink环境搭建(standalone模式)
Flink学习笔记(二):1.Flink环境搭建 1.1 架构说明(standalone模式) standalone 是 Flink 自带的一个分布式集群,它不依赖其他的资源调度框架、不依赖 yarn 等。Spark也有一个自带的分布式资源调度模型,也叫作 standalone。standalone模式进程名介绍:Job...原创 2020-01-21 13:27:43 · 6846 阅读 · 7 评论 -
Flink 提交任务的两种方式
Flink学习笔记(三):向 Flink 集群提交任务,共有以下两种方式:使用Web页面Submit New Job方式提交使用命令行方式提交示例Flink 安装包,自带有一些示例程序,我们只需要将 Flink 安装包解压即可。解压缩后,我们会在 examples 目录下面,看到一些示例程序。接下来,我们使用 streami...原创 2020-01-21 14:54:40 · 11025 阅读 · 1 评论 -
Java 编写Flink实时任务(WordCount 示例)
Flink学习笔记(四):1.准备工作1.1 版本信息 Maven版本:3.0.4 及以上 JDK版本:JDK 81.2 使用 Maven 命令创建 Flink 项目模板: 如果 maven 本地没有所依赖的 jar 包,则需要网络支持。 在 cmd 命令行,执行如下命令:mvn archetype:generate-DarchetypeGroupId=org.ap...原创 2020-02-04 12:47:30 · 7120 阅读 · 11 评论 -
Windows/Linux 开启端口监听
Flink学习笔记(五):Windows 开启端口监听 Windows本身是不支持 nc 端口监听的。但是我们可以通过下载 netcat 来是解决这个问题。下载地址:netcat 下载后,进行解压,并将解压后目录下的所有文(.txt 文件除外),复制到 C...原创 2020-02-04 12:06:05 · 12269 阅读 · 6 评论 -
如何将我们编写的Flink任务打包到集群运行
Flink学习笔记(六):1.准备工作 1.Flink集群环境:如未搭建,此处以standalone模式学习。请参考链接:我是链接 2.Flink开发的任务代码:本文以 实时WordCount 为例。代码部分,请参考以下链接:Flink 编写实时 WordCount 实例 3.因为实时WordCount示例,需要读取...原创 2020-02-04 15:45:43 · 4613 阅读 · 4 评论 -
Lambda 表达式编写 Flink 实时任务
Flink学习笔记(七):1.Lambda表达式编写 WordCount 使用 Lambda表达式编写 Flink 实时 WordCount 实例,我们发现编译能够通过,但是运行时却会报错。报错信息继续向下看↓↓↓/** * TODO Lambda表达式,实现实时WordCount * (如下Lambda表达式还可以继续精简,为方便错...原创 2020-02-04 17:26:50 · 1732 阅读 · 0 评论 -
Flink 开发离线任务 WordCount
Flink学习笔记(八):提示:使用 Java Lambda表达式,开发 Flink 离线任务。我们可以参考:Lambda 表达式编写 Flink 实时任务,开发流程类似于 Flink 开发实时任务。场景: 我们使用 Lambda 表达式,来开发 Flink 离线任务 WordCunt1.离线计算代码离线计算,...原创 2020-02-04 18:57:14 · 3372 阅读 · 0 评论 -
Flink 整合 Kafka(未实现Exactly-Once)
Flink学习笔记(九):1.准备工作 1.ZooKeeper集群安装:如不了解ZooKeeper的安装,请点击链接了解:ZooKeeper集群的安装 2.Kafka集群安装:如不了解ZooKeeper的安装,请点击链接了解:Kafka集群的安装  ...原创 2020-02-07 16:29:11 · 1743 阅读 · 0 评论 -
Flink常用算子Transformation介绍
Flink学习笔记(十):1.官方文档 Flink中的算子,是对 DataStream 进行操作,返回一个新的 DataStream 的过程。Transformation 过程,是将一个或多个 DataStream 转换为新的 DataStream,可以将多个转换组合成复杂的数据流拓扑 &nb...原创 2020-02-09 15:20:20 · 3478 阅读 · 1 评论 -
Flink Sink介绍
Flink学习笔记(十一):Flink 的 Sink 是 Flink 三大逻辑结构之一(Source,Transform,Sink),功能就是负责把 Flink 处理后的数据输出到外部系统中,Flink 的 Sink 和 Source 的代码结构类似。 在编写...原创 2020-02-10 13:42:52 · 4833 阅读 · 0 评论 -
Flink 之 Dataflow、Task、subTask、Operator Chains、Slot 介绍
Flink学习笔记(十二):1.概念Task(任务):Task 是一个阶段多个功能相同 subTask 的集合,类似于 Spark 中的 TaskSet。subTask(子任务):subTask 是 Flink 中任务最小执行单元,是一个 Java 类的实例,这个 Java 类中有属性和方法,完成具体的计算逻辑。Operator Chains(算子链):没有 shuffle 的多个算子合并在一个 subTask 中,就...原创 2020-02-10 17:09:41 · 5270 阅读 · 7 评论 -
Flink 中 Time 和 Window 介绍
Flink学习笔记(十三):1.Time 在 Flink 的流式处理中,会涉及到时间的不同概念Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间。Ingestion Time:是数据进入 Flink 的时间Processing Time:被算子处理时的时间。默认的时间属性就是Processing Time。我们来举个T...原创 2020-02-11 15:48:06 · 4584 阅读 · 9 评论 -
Flink 使用 EventTime、WaterMarks 处理实时数据
Flink学习笔记(十四): 结合上一篇博文: Flink 中 Time 和 Window 介绍,我们了解到 Flink 的流式处理中,会涉及到 3 个时间概念。分别是:Event Time、Ingestion Time、Processing Time。 如果你...原创 2020-02-12 18:44:18 · 2019 阅读 · 5 评论 -
Flink使用异步I/O访问外部数据
Flink学习笔记(十五):本文示例参考自:1.Flink官方文档 2.HttpAsyncClient(异步HttpClient) 3.高德地图(地理/逆地理编码)1.异步I/O操作的需求 ...原创 2020-02-14 15:47:13 · 2532 阅读 · 5 评论 -
Flink 异步查询 MySQL 数据
Flink学习笔记(十六):Flink 异步查询 MySQL 数据/** * TODO Flink 异步查询 MySQL 数据 * * @author liuzebiao * @Date 2020-2-14 17:16 */public class AsyncMySQLRequest extends RichAsyncFunction<String,String> { private tr...原创 2020-02-14 17:35:16 · 2764 阅读 · 1 评论 -
Flink重启策略
Flink学习笔记(十七):1.Flink 重启策略介绍 当介绍 Flink 重启策略时,就必须要先介绍一下 State、StateBackEnd、CheckPointing 这三个概念。1.1 State 状态 Flink 实时计算程序为了保证计算过程中,...原创 2020-02-15 17:06:41 · 1846 阅读 · 1 评论 -
Flink 之 StateBackend 介绍 & 使用
Flink学习笔记(十八):StateBackEnd# 1.StateBackEnd 用来保存 State 的存储后端就叫做<code>**StateBackend**</code>。==StateBackend 默认是保存在 JobManager 的内存中==,也可以保存在 <code>**本地文件系统**</code> 或者 <code>**HDFS 分布式文件系统**</code>中。 &n原创 2020-02-15 17:09:55 · 4298 阅读 · 4 评论 -
Flink 从 Checkpoint 中恢复数据
Flink学习笔记(十九):当 Flink 任务提交后,只有遇到 1.程序错误、2.人为 Cancel掉,任务就会停止。1. 任务异常,设置保存 CheckPoint 中途数据不被删除 如果现在有个任务已经执行很长时间,这样就突然停止了,那么中间...原创 2020-02-16 14:47:28 · 6625 阅读 · 9 评论 -
Flink 中的 State 状态介绍
Flink学习笔记(二十):1.Flink 的 State1.1 State介绍 Flink 架构体系的一大特性是:有状态计算。有状态计算:任务执行过程中,会存储计算过程中产生的中间结果,并提供后续的 Function 或 算子计算结果使用状态:任务内部数据(计算数据和元数据属性)的快照。在计算过程中会进行持久化,保存有任务中间计算结果的数据。1.2 State作用 ...原创 2020-02-16 18:37:41 · 3226 阅读 · 0 评论 -
Flink 之 OperatorState的使用(已实现Exactly-Once)
Flink笔记(二十一):场景从指定路径读取文件中的内容,即实现 tail -f 的功能。需求并行读取数据;获取 OperatorState 状态 + Checkpoint 机制,保证 Exactly-Once(已读数据在任务异常重启之后不会再次去读);文件夹有多个.txt 文件,根据 subTask Index来...原创 2020-02-17 14:22:19 · 3387 阅读 · 0 评论 -
Flink 之 KeyedState 的使用
Flink学习笔记(二十二):场景: 不使用 Flink 提供的 sum() 方法,对单词进行分组求和计算。代码:/** * TODO 不使用 Flink 提供的sum()方法,对单词进行分组求和计算。 * * @author liuzebiao * @Date 2020-2-17 11:42 */public cl...原创 2020-02-17 14:22:31 · 2334 阅读 · 2 评论 -
Flink 整合 Kafka (实现 Exactly-Once)
Flink学习笔记(二十三):Flink 整合 Kafka 基本步骤,请参考:Flink 基础整合 Kafka。本文仅用来介绍 Flink 整合 Kafka 实现 Exactly-Once。1.什么是Exactly-Once 恰好处理一次的意思。不...原创 2020-02-17 21:07:59 · 4391 阅读 · 0 评论 -
Flink 数据 保存 Redis(自定义Redis Sink)
Flink学习笔记(二十四):本文主要用来介绍 Flink 读取 Kafka数据,并实时下沉(Sink)数据到 Redis 的过程。通过如下链接:Flink官方文档,我们知道数据保存到 Redis 的容错机制是 at least once。所以我们通过幂等操作,相同数据情况下,使用新数据覆盖旧数据的原则,以此来实现 exactly-...原创 2020-02-20 11:09:21 · 4411 阅读 · 0 评论 -
Window相关算子介绍
Flink学习笔记(二十五):在之前,已经介绍完了 Flink 开发过程中相关算子 Transformation 的介绍。链接如下:Flink笔记(十):Flink常用算子Transformation介绍。 我们也介绍了 Flink 的 Time 和...原创 2020-02-27 15:45:34 · 1522 阅读 · 0 评论 -
Flink Window中的 inner join、left join、right join
Flink学习笔记(二十六):Flink 中的两个流,也是可以实现 Join 操作的。如果两个流要实现 Join 操作,必须满足以下两点:流需要能够等待,即:两个流必须在同一个窗口中;双流等值 Join,即:两个流中,必须有一个字段相等才能够 Join 上。1.Flink 中支持 双流join 的算子 Flin...原创 2020-02-21 16:03:19 · 3833 阅读 · 4 评论 -
Flink 结合 布隆过滤器(BloomFilter) 实现去重
Flink学习笔记(二十七):1.实时系统去重方案使用Redis,将实时系统每条数据都去和 Redis 进行判断;使用 HashSet,因为 HashSet 本身就是无序不重复的; 但是以上两个方案,都是存在缺陷的。如果使用 Redis,每次都需要通过网络连接 Redis 服务,这两个原因:1.网络速度明显比缓存速度慢 2...原创 2020-02-24 14:36:21 · 8971 阅读 · 8 评论 -
Flink Broadcast State 状态广播
Flink学习笔记(二十八):1.前言 在 Apache Flink 1.5.0 中引入了广播状态(Broadcast State)。广播状态模式指的一种流应用程序,其中低吞吐量的事件流(例如,包含一组规则数据/字典数据)被广播到某个 operator 的所有并发实例中,然后针对来自另一条原始数据流中的数据,进行关联操作。2.Broadcas...原创 2020-02-25 12:25:09 · 2043 阅读 · 1 评论 -
Flink 之 MySQL二阶提交
Flink学习笔记(二十九):两阶段提交(two-phase commit, 2PC)是最基础的分布式一致性协议,应用广泛。在文章:自定义Redis Sink 中,我们有介绍过 Redis 的容错机制是 At Least Once,我们通过幂等操作,使用新数据...原创 2020-02-27 12:52:24 · 5487 阅读 · 12 评论 -
Flink 中 Table API & SQL 介绍
Flink学习笔记(三十):1.Table API & SQL 开头附上:Flink Table API & SQL 英文官方文档1.1 背景 Flink虽然已经拥有了强大的 DataStream / DataSet API,而且...原创 2020-02-26 10:24:41 · 1537 阅读 · 2 评论 -
Flink中Table API & SQL 实现(滚动/滑动)窗口
Flink学习笔记(三十一):数据格式:时间,用户ID,商品ID,价格1582703711000,u1,p1,51582703712000,u1,p1,51582703712000,u2,p1,31582703713000,u1,p1,51582703719999,u2,p1,31582703729999,u1,p1,51.Table API 实现滚动窗口/** * TODO Table API 实现滚动...原创 2020-02-26 15:57:01 · 3485 阅读 · 8 评论 -
自定义 ElastisSearch Sink
Flink笔记(三十二):1.添加Maven依赖<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-elasticsearch6_2.11</artifactId> <version>1.9.1</version></dep...原创 2020-05-08 16:04:45 · 702 阅读 · 2 评论 -
Flink相关异常解决
Flink学习笔记(End):1.Flink Table API 中,错误信息如下:错误信息:Exception in thread “main” org.apache.flink.table.api.TableException: Arity [2] of result [[Lorg.apache.flink.api.common.typeinfo.TypeInformation;@52354202] does not...原创 2020-02-26 14:14:58 · 3646 阅读 · 4 评论