![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flink
木生火18624
多练内功
展开
-
Apache Flink:详细入门
问题导读1.Apache Flink是什么?2.Flink在实现流处理和批处理时,与传统的一些方案有什么不同?3.Apache Flink流处理有哪些特性? Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的SLA是完全不相同的:流处理一般需要...转载 2020-07-22 11:05:52 · 236 阅读 · 0 评论 -
09状态管理和容错机制——Flink
Flink会将状态以二进制的形式全部存储起来算子状态(operator state 一个任务一个状态) “所有并行的子任务对应着一个状态,也就是到子任务来的所有数据共享一个状态” Flink 为算子状态提供三种基本数据结构: 列表状态(List state) 将状态表示为一组数据的列表。 (会根据并行度的调整直接把之前的状态重新分组重新分配) 联合列表状态(Union list state)也将状态表示为数据的列表。它与常规列表状态的区别在于,在发...原创 2020-07-12 13:30:32 · 238 阅读 · 0 评论 -
08ProcessFunction API(底层 API)——Flink
之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的,基于此,DataStream API 提供了一系列的 Low-Level 转换算子。可以访问时间 戳、watermark 以及注册定时事件。还可以输出特定的一些事件,Flink SQL 就是使用 Process Function 实 现的。 Flink 提供了 8 个 Process Function:ProcessFunction KeyedProcessFunction // keyby之后 的 可以操作keyStreamCoP原创 2020-07-12 13:30:19 · 204 阅读 · 0 评论 -
07Flink中的时间语义和watermark——Flink
重要的两个概念: 状态管理、时间语义Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的 日志数据中,每一条日志都会记录自己的生成时间,Flink 通过时间戳分配器访问事 件时间戳。Ingestion Time:是数据进入 Flink 的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器 相关,默认的时间属性就是 Processing Time。 对于业务来说,要统计 1min 内的故障日志个数,哪个时间是最有意义的...原创 2020-07-12 13:29:33 · 220 阅读 · 0 评论 -
06Flink Windows API——Flink
window 是一种切割无限数据 为有限块进行处理的手段。 Window 是无限数据流处理的核心,Window 将一个无限的 stream 拆分成有限大 小的”buckets”桶,我们可以在这些桶上做计算操作Windows可以分为两类CountWindow:按照指定的数据条数生成一个 Window,与时间无关。TimeWindow:按照时间生成 Window。对于 TimeWindow,可以根据窗口实现原理的不同分成三类:滚动窗口(Tumbling Window)、滑动窗口(Slidin原创 2020-07-12 13:28:56 · 118 阅读 · 0 评论 -
05Flink 流处理 API——Flink
getExecutionEnvironment创建一个执行环境,表示当前执行程序的上下文。getExecutionEnvironment 会根据查询运行的方 式决定返回什么样的运行环境,是最常用的一种创建执行环境的方式。val env = StreamExecutionEnvironment.getExecutionEnvironment如果没有设置并行度,会以 flink-conf.yaml 中的配置为准,默认是 1。Source从集合读取数据// 定义样例类,传感...原创 2020-07-12 13:28:47 · 273 阅读 · 1 评论 -
04Flink 运行架构——Flink
Flink 运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作: 作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager), 以及分发器(Dispatcher)。因为 Flink 是用 Java 和 Scala 实现的,所以所有组件都会运行在 Java 虚拟机上。每个组件的职责如下:作业管理器(JobManager) 控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的 JobManager 所控制执行。J原创 2020-07-12 13:28:24 · 98 阅读 · 0 评论 -
03实现Flink集群的部署——Flink
官网中,有两种版本,一种是有hadoop支持的版本,一种是没有hadoop支持的版本解压后重点有两个目录,一个是bin,一个是conf1、解压到指定目录tar -zxvf flink-1.7.2-bin-scala_2.11.tgz -C local/2、配置Flink的配置很简单。 我们需要调整一些参数,我们都已设置好。 作业管理器节点和任务管理器节点的大多数配置都相同。 所有配置都在conf/flink-conf.yaml文件中完成。下面配置进入目录cd /usr/原创 2020-07-12 13:27:33 · 110 阅读 · 0 评论 -
01实现WordCount(批处理+流处理)快速上手——Flink
搭建 maven 工程 FlinkTutorial然后在pom.xml中添加依赖,和引入插件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt...原创 2020-07-12 13:26:20 · 156 阅读 · 0 评论 -
02为实现Flink的部署做前期准备——Flink
官网中,有两种版本,一种是有hadoop支持的版本,一种是没有hadoop支持的版本解压后重点有两个目录,一个是bin,一个是conf原创 2020-07-12 13:27:08 · 102 阅读 · 0 评论