![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flink个人学习笔记
文章平均质量分 68
尽量做到详细,分类
Platina_Tomato
这个作者很懒,什么都没留下…
展开
-
Flink生产---15Redis、JedisUtil
Flink 项目中访问 Redis 的方法都是自己进行的实现,推荐使用 Bahir 连接器。在本地单机情况下:public static class RedisExampleMapper implements RedisMapper<Tuple2<String, String>>{ @Override public RedisCommandDescription getCommandDescription() { return new RedisC原创 2021-03-20 13:52:07 · 287 阅读 · 0 评论 -
Flink生产---14Exactly-once 实现原理解析
Flink 的“精确一次”处理语义是,Flink 提供了一个强大的语义保证,也就是说在任何情况下都能保证数据对应用产生的效果只有一次,不会多也不会少。Flink 是如何实现“端到端的精确一次处理”语义的呢?通常情况下,流式计算系统都会为用户提供指定数据处理的可靠模式功能,用来表明在实际生产运行中会对数据处理做哪些保障。一般来说,流处理引擎通常为用户的应用程序提供三种数据处理语义:最多一次、至少一次和精确一次。1最多一次(At-most-Once):这种语义理解起来很简单,用户的数据只会被处理一次,不管原创 2020-06-06 14:36:07 · 1364 阅读 · 0 评论 -
Flink生产---13生产环境中的 Flink 高可用配置
概述:事实上,集群的高可用(High Availablility,以下简称 HA)配置是大数据领域经典的一个问题。通常 HA 用来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。06中:简单地介绍了 HA 配置。03中:提到过 Flink 集群中的角色:JobManager:集群管理者的角色:负责任务调度,协调Checkpoints、协调故障恢复、收集Job的状态信息、管理Flink集群中从节点的TaskManager。其他的一些角色详看03.在默认的情况下,我们的每个原创 2021-03-20 13:23:01 · 923 阅读 · 0 评论 -
Flink进阶---12常用的Source和Connector
主要介绍Flink中支持得Source和常用的Connector。Flink 自身实现了多种 Source 和 Connector 方法,并且还提供了多种与第三方系统进行对接的 Connector。预定义和自定义Source在基础04中Flink常用的 DataSet 和 DataStream API中提到过几种Flink已经实现的新建DataStream方法。基于文件:我们在本地环境进行测试时可以方便地从本地文件读取数据:ExecutionEnvironment env = Executio原创 2021-03-20 12:51:22 · 552 阅读 · 0 评论 -
Flink进阶---11CEP 复杂事件处理
这个目前在做一个项目,在项目完成后会单独拿出来说,这里先简单说一下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 circumstances. The goal原创 2020-06-06 14:16:24 · 319 阅读 · 0 评论 -
Flink进阶---10Side OutPut 分流
分流场景我们在生产实践中经常会遇到这样的场景,需把输入源按照需要进行拆分,比如我期望把订单流按照金额大小进行拆分,或者把用户访问日志按照访问者的地理位置进行拆分等。面对这样的需求该如何操作呢?分流的方法通常来说针对不同的场景,有以下三种办法进行流的拆分。Filter 分流Filter 方法我们在第 04 课时中(Flink 常用的 DataSet 和 DataStream API)讲过,这个算子用来根据用户输入的条件进行过滤,每个元素都会被 filter() 函数处理,如果 filter() 函数原创 2020-06-06 13:14:28 · 231 阅读 · 0 评论 -
Flink进阶---09状态与容错
所谓的状态,其实指的是 Flink 程序的中间计算结果。Flink 支持了不同类型的状态,并且针对状态的持久化还提供了专门的机制和状态管理器。状态我们在 Flink 的官方博客中找到这样一段话,可以认为这是对状态的定义:When working with state, it might also be useful to read about Flink’s state backends. Flink provides different state backends that specify how原创 2020-06-06 13:13:23 · 139 阅读 · 0 评论 -
Flink进阶---08窗口、时间和水印
Flink 框架中支持事件时间、摄入时间和处理时间三种。而当我们在流式计算环境中数据从 Source 产生,再到转换和输出,这个过程由于网络和反压的原因会导致消息乱序。因此,需要有一个机制来解决这个问题,这个特别的机制就是“水印”。Flink 的窗口和时间我们在第 05 课时中讲解过 Flink 窗口的实现,根据窗口数据划分的不同,目前 Flink 支持如下 3 种:滚动窗口,窗口数据有固定的大小,窗口中的数据不会叠加;滑动窗口,窗口数据有固定的大小,并且有生成间隔;会话窗口,窗口数据没有固定的大原创 2020-06-06 13:11:50 · 514 阅读 · 0 评论 -
Flink进阶---07常见核心概念分析
在 Flink 这个框架中,有很多独有的概念,比如分布式缓存、重启策略、并行度等,这些概念是我们在进行任务开发和调优时必须了解的,这一课时我将会从原理和应用场景分别介绍这些概念。分布式缓存熟悉 Hadoop 的你应该知道,分布式缓存最初的思想诞生于 Hadoop 框架,Hadoop 会将一些数据或者文件缓存在 HDFS 上,在分布式环境中让所有的计算节点调用同一个配置文件。在 Flink 中,Flink 框架开发者们同样将这个特性进行了实现。Flink 提供的分布式缓存类型 Hadoop,目的是为了在原创 2020-06-06 13:06:54 · 618 阅读 · 0 评论 -
Flink基础---06开发环境&项目的构建
Flink 项目的构建java/scala版本的maven要求:Maven 3.0.4(或更高版本)和Java 8.x安装。Flink配置依赖关系,联接器,库Flink中有两大类依赖项和库:1、Flink核心依赖关系:Flink本身由运行系统所需的一组类和依赖项组成,例如协调,网络,检查点,故障转移,API,算子操作(如窗口),资源管理等。这些类和依赖项构成了Flink运行时的核心,在...原创 2020-04-24 09:10:29 · 186 阅读 · 0 评论 -
Flink基础---05SQL & Table 编程和案例
Flink Table & SQL 概述背景我们在前面的课时中讲过 Flink 的分层模型,Flink 自身提供了不同级别的抽象来支持我们开发流式或者批量处理程序,下图描述了 Flink 支持的 4 种不同级别的抽象。Table API 和 SQL 处于最顶端,是 Flink 提供的高级 API 操作。Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言。我们在第 04 课时中提到过,Flink 在编程模型上提供了原创 2020-06-06 13:01:07 · 311 阅读 · 0 评论 -
Flink基础---04常用的 DataSet 和 DataStream API
现状在前面的课程中,曾经提到过,Flink 很重要的一个特点是“流批一体”,然而事实上 Flink 并没有完全做到所谓的“流批一体”,即编写一套代码,可以同时支持流式计算场景和批量计算的场景。目前截止 1.10 版本依然采用了 DataSet 和 DataStream 两套 API 来适配不同的应用场景。DateSet 和 DataStream 的区别和联系在官网或者其他网站上,都可以找到目前 Flink 支持两套 API 和一些应用场景,但大都缺少了“为什么”这样的思考。Apache Flink原创 2020-06-06 12:56:35 · 916 阅读 · 0 评论 -
Flink基础---03编程模型与其他框架比较
本课时的内容主要介绍基于 Flink 的编程模型,包括 Flink 程序的基础处理语义和基本构成模块,并且和 Spark、Storm 进行比较,Flink 作为最新的分布式大数据处理引擎具有哪些独特的优势呢?Flink 的核心语义和架构模型我们在讲解 Flink 程序的编程模型之前,先来了解一下 Flink 中的 Streams、State、Time 等核心概念和基础语义,以及 Flink 提供的不同层级的 API。Flink 核心概念Streams(流),流分为有界流和无界流。有界流指的是有固定大原创 2020-06-06 12:55:29 · 149 阅读 · 0 评论 -
Flink基础---02入门程序 WordCount 和 SQL 实现
Flink 开发环境通常来讲,任何一门大数据框架在实际生产环境中都是以集群的形式运行,而我们调试代码大多数会在本地搭建一个模板工程,Flink 也不例外。Flink 一个以 Java 及 Scala 作为开发语言的开源大数据项目,通常我们推荐使用 Java 来作为开发语言,Maven 作为编译和包管理工具进行项目构建和编译。对于大多数开发者而言,JDK、Maven 和 Git 这三个开发工具是必不可少的。关于 JDK、Maven 和 Git 的安装建议如下表所示:工程创建一般来说,我们在通过 ID原创 2020-06-06 12:54:46 · 221 阅读 · 0 评论