随笔分类 - Flink
摘要:准备工作 本文简述 Flink在 Linux中安装步骤,和示例程序的运行。需要安装 JDK1.8 及以上版本。 下载地址:下载Flink 的二进制包 https://flink.apache.org/downloads.html点进去后,选择如下链接: 解压 flink-1.10.1-bin-s
阅读全文
摘要:【问题描述】:[root@hadoop1 flink-1.10.1]# bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000Job has been submitted with JobID 2dd7501cfe
阅读全文
摘要:传统批次处理方法 【1】持续收取数据(kafka等),以window 时间作为划分,划分一个一个的批次档案(按照时间或者大小等);【2】周期性执行批次运算(Spark/Stom等); 传统批次处理方法存在的问题:【1】假设计算每小时出现特定事件的转换次数(例如:1、2......),但某个事件
阅读全文
摘要:流处理API的衍变 Storm:TopologyBuilder 构建图的工具,然后往图中添加节点,指定节点与节点之间的有向边是什么。构建完成后就可以将这个图提交到远程的集群或者本地的集群运行。Flink:不同之处是面向数据本身的,会把DataStream 抽象成一个本地集合,通过面向集合流的编程方式
阅读全文
摘要:Flink 根据数据集类型的不同将核心数据处理接口分为两大类,一类是支持批计算的接口DataSet API,另外一类是支持流计算的接口 DataStream API。同时 Flink将数据处理接口抽象成四层,由上向下分别为SQL API、Table API、DataStream /DataSet A
阅读全文
摘要:Flink 流应用程序处理的是以数据对象表示的事件流。所以在Flink内部,我么需要能够处理这些对象。它们需要被序列化和反序列化,以便通过网络传送它们;或者从状态后端、检查点和保存点读取它们。为了有效地做到这一点,Flink需要明确知道应用程序所处理的数据类型。并为每个数据类型生成特定的序列化器、反
阅读全文
摘要:构建环境 JDK1.8 以上和Maven 3.3.x可以构建Flink,但是不能正确地遮盖某些依赖项。Maven 3.2.5会正确创建库。所以这里使用为了减少问题选择 Maven3.2.5 版本进行构建。要构建单元测试,请使用Java 8以上,以防止使用 PowerMock运行器的单元测试失败。 克
阅读全文
摘要:现实世界中,所有的数据都是以流式的形态产生的,不管是哪里产生的数据,在产生的过程中都是一条条地生成,最后经过了存储和转换处理,形成了各种类型的数据集。如下图所示,根据现实的数据产生方式和数据产生是否含有边界(具有起始点和终止点)角度,将数据分为两种类型的数据集,一种是有界数据集,另外一种是无界数据集
阅读全文
摘要:一、运行环境介绍 Flink执行环境主要分为本地环境和集群环境,本地环境主要为了方便用户编写和调试代码使用,而集群环境则被用于正式环境中,可以借助Hadoop Yarn、k8s 或 Mesos等不同的资源管理器部署自己的应用。环境依赖:【1】JDK环境:Flink核心模块均使用 Java开发,所以运
阅读全文
摘要:一、什么是状态 无状态计算的例子:例如一个加法算子,第一次输入 2+3=5 那么以后我多次数据 2+3 的时候得到的结果都是5。得出的结论就是,相同的输入都会得到相同的结果,与次数无关。有状态计算的例子:访问量的统计,我们都知道 Nginx 的访问日志一个请求一条日志,基于此我们就可以统计访问量。如
阅读全文
摘要:Flink API 总共分为4层链接这里主要整理 Table API 的使用 Table API是流处理和批处理通用的关系型 API,Table API可以基于流输入或者批输入来运行而不需要进行任何修改。Table API 是 SQL语言的超集并专门为 Apache Flink设计的,Table A
阅读全文
摘要:一、基本组件栈 在Flink整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建 Flink应用提供了丰富且友好的接口。从下图中可以看出整个 Flink的架构体系基本上可以分为三层,由上往下依次是 API & Libraries层、Runtime核心层以及物理部
阅读全文
摘要:【问题描述】: Could not build the program from JAR file. Use the help option (-h or --help) to get help on the command. 【产生原因】:之前 per-job启动的时候,它们都用 flink1.8
阅读全文
摘要:Flink 提供了丰富的客户端操作来提交任务和与任务进行交互。下面主要从Flink命令行、Scala Shell、SQL Client、Restful API 和 Web 五个方面进行整理。 在 Flink 安装目录的 bin目录下可以看到 flink,start-scala-shell.sh 和
阅读全文
摘要:在介绍 Checkpoint 的执行机制前,我们需要了解一下 state 的存储,因为 state 是 Checkpoint 进行持久化备份的主要角色。Checkpoint 作为 Flink 最基础也是最关键的容错机制,Checkpoint 快照机制很好地保证了 Flink 应用从异常状态恢复后的数
阅读全文
摘要:Flink 的 API 大体上可以划分为三个层次:处于最底层的 ProcessFunction、中间一层的 DataStream API 和最上层的 SQL/Table API,这三层中的每一层都非常依赖于时间属性。时间在 Flink 中的地位如下图所示:时间属性是流处理中最重要的一个方面,是流处
阅读全文
摘要:为 Flink 量身定制的序列化框架 大家都知道现在大数据生态非常火,大多数技术组件都是运行在 JVM 上的,Flink 也是运行在 JVM 上,基于 JVM 的数据分析引擎都需要将大量的数据存储在内存中,这就不得不面临 JVM 的一些问题,比如 Java 对象存储密度较低等。针对这些问题,最常用的
阅读全文
摘要:【1】引入第三方 Bahir 提供的 Flink-redis 相关依赖包 1 <!-- https://mvnrepository.com/artifact/org.apache.bahir/flink-connector-redis --> 2 <dependency> 3 <groupId>or
阅读全文
摘要:Flink On Yarn 模式 基于 Yarn 层面的架构类似 Spark on Yarn 模式,都是由 Client 提交 App 到 RM 上面去运行,然后 RM 分配第一个 container 去运行 AM,然后由 AM 去负责资源的监督和管理。需要说明的是,Flink 的 Yarn 模
阅读全文