Apache Flink

Flink简介

荒凉一梦 提交于 2020-07-26 08:04:08
参考文章: Flink编程 1. 认知flink Flink是一个框架和分布式处理引擎 ,用于对无界和有界数据流进行有状态计算 2. 主要特点 2.1 事件驱动型(Event-driven) 事件驱动型应用是 一类具有状态的应用,从一个或多个事件流提取数据,根据到来的事件触发计算,状态更新或其他外部动作, 典型的是kafka类的消息队列, SparkStreaming微批次: 事件驱动型: 2.2 观象 =>流&批 批处理 有界、持久、大量,非常适合需要访问全套记录才能完成的计算工作,一般用于离线统计。 流处理 无界、实时, 无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作,一般用于实时统计。 spark中一切是批处理,离线数据是一个大批次,而实时数据是由一个一个无限的小批次组成的。 flink中一切都是由流组成的,离线数据是有界限的流,实时数据是一个没有界限的流,这就是所谓的有界流和无界流。 2.3 有界&无界 无界数据流 无界数据流有一个开始但是没有结束,它们不会在生成时终止并提供数据,必须连续处理无界流,也就是说必须在获取后立即处理event。对于无界数据流我们无法等待所有数据都到达,因为输入是无界的,并且在任何时间点都不会完成。处理无界数据通常要求以特定顺序(例如事件发生的顺序)获取event,以便能够推断结果完整性。 有界数据流

Flink编程--参考

懵懂的女人 提交于 2020-07-25 20:22:38
参考文章: 专栏地址: https://blog.csdn.net/wwwzydcom/category_9319828.html flink sql与tableAPI Flink读取嵌套Json flink的DataSet:传递参数 flink的DataSet:分布式缓存 flink的DataSet:广播变量的使用 flink的DataSet读取文件以及外连接 flink的Table API 与 SQL-更新模式与kafka连接器案例 flink的Table API 与 SQL-Table Schema flink的Table API 与 SQL-外部连接器 flink的Table API 与 SQL-DataStream或DataSet与Table相互转换 flink的Table API 与 SQL-StreamTableEnvironment基本操作 flink的toAppendStream与toRetractStream(待完善) 来源: oschina 链接: https://my.oschina.net/u/4339204/blog/4350668

深入了解ProcessFunction的状态操作(Flink-1.10)

亡梦爱人 提交于 2020-07-25 02:28:47
学习Flink的ProcessFunction过程中,官方文档中涉及状态处理的时候,不止一次提到只适用于keyed stream的元素,如下图红框所示: 之前写过一些flink应用,keyed stream常用但不是必须用的,所以产生了疑问: 为何只有keyed stream的元素能读写状态? 每个key对应的状态是如何操作的? Flink的"状态" 先去回顾Flink"状态"的知识点: 官方文档说就两种状态:keyed state和operator state: 如上图,keyed stream的元素是具有key的特征,与ProcessFunction的操作状态时要求匹配,其他steam的元素由于没有key的特征,所以也就没有状态一说了; 另一种状态是Operator State,如下图,这是和多并行度计算时的算子实例绑定的,例如当前算子消费kafka的某个分区的最新offset,而ProcessFunction是用来处理stream元素的,不会涉及到Operator State: 官方demo 为了学习ProcessFunction就去看官方demo,地址是:https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/stream/operators/process_function.html

Flink读取嵌套Json

孤者浪人 提交于 2020-07-25 00:53:03
参考文章: Flink读取嵌套Json package kafka; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.Table; import org.apache.flink.table.api.Types; import org.apache.flink.table.api.java.StreamTableEnvironment; import org.apache.flink.table.descriptors.Json; import org.apache.flink.table.descriptors.Kafka; import org.apache.flink.table.descriptors.Schema; import org.apache.flink.types.Row; /** * 样例数据: {"userId":"1","day":

Flink 重启策略

元气小坏坏 提交于 2020-07-24 07:17:03
参考文章: Flink 重启策略 Flink重启策略官网介绍 Flink支持不同的重启策略,可以控制在发生故障时如何重新启动作业。可以使用默认重新启动策略启动集群,该策略在未定义任何特定于作业的重新启动策略时始终使用。如果使用重新启动策略提交作业,此策略将覆盖群集的默认设置。 重启(Restart Strategies)策略种类: 固定延迟重启策略(Fixed Delay Restart Strategy) 故障率重启策略(Failure Rate Restart Strategy) 没有重启策略(No Restart Strategy) 后背重启策略(Fallback Restart Strategy) 默认重启策略是通过Flink的配置文件设置的flink-conf.yaml, 定义策略的配置key为: restart-strategy。 如果未启用检查点,则使用“无重启”策略。如果激活了检查点但未配置重启策略,则使用“固定延迟策略”尝试重启: restart-strategy.fixed-delay. attempts: Integer.MAX_VALUE 请参阅以下可用的重新启动策略列表。 Restart Strategy Value for restart-strategy Fixed delay fixed-delay Failure rate failure-rate

18个PPT,29个提问解答,都在这儿啦!

北城余情 提交于 2020-05-09 12:05:16
4月25-26日,全球首个 Apache 顶级项目在线盛会 Flink Forward 中文精华版重磅开播,聚焦 Alibaba、 Google、AWS、Uber、Netflix、DellEMC、微博、滴滴等各大互联网公司实时计算的经典场景和业务故事,由 Flink 核心贡献者们对 19 个优质 talk 进行中文翻译及解说,您可免费在线观看。 为期一天半的 Flink Forward 中文精华版在北京、上海、杭州三地进行联动直播,吸引了全球近 20000 人次开发者在线观看。除优质内容外,Flink Forward 精华版还首次开创问题征集,在线观看直播的同学可及时对嘉宾分享提出疑问并邀请讲师在线解答。 大会全部提问及解答: https://shimo.im/sheets/twgyxGh9hqy6DHYk/MODOC/ 直播回顾及 Flink 社区学习资料大礼包下载请点击: Flink Forward 全球在线会议中文精华版0425 Flink Forward 全球在线会议中文精华版0426 以下选取了大会部分具有代表性的问题及讲师回答,共享给大家。 Keynote: Introducing Stateful Functions 2.0: Stream Processing meets Serverless Applications 解说嘉宾: 李钰(绝顶),Apache

Flink 1.10中idea运行出错invalid flag

╄→гoц情女王★ 提交于 2020-05-09 11:29:24
今日好奇,下载Flink 1.10的源码在本机玩一玩。 将工程按照正常流程导入IDEA后,运行flink-examples中的demo竟出现如下错误 Error:java: invalid flag: --add-exports=java.base/sun.net.util=ALL-UNNAMED 通过搜索发现如下文章(见引用),将这个原因描述如下: Flink1.10中编译时默认开启了java11,需要将其关闭并重新导入项目。 去掉下图中java11的复选,并点击上面的reimport即可。 引用 http://apache-flink.147419.n8.nabble.com/Error-java-add-exports-java-base-sun-net-util-ALL-UNNAMED-td943.html 来源: oschina 链接: https://my.oschina.net/u/4355947/blog/4271665

实时流式计算系统中的几个陷阱

蹲街弑〆低调 提交于 2020-05-08 10:13:15
随着诸如Apache Flink,Apache Spark,Apache Storm之类的开源框架以及诸如Google Dataflow之类的云框架的增多,创建实时数据处理作业变得非常容易。这些API定义明确,并且诸如Map-Reduce之类的标准概念在所有框架中都遵循几乎相似的语义。 但是,直到今天,实时数据处理领域的开发人员都在为该领域的某些特性而苦苦挣扎。因此,他们在不知不觉中创建了一条路径,该路径导致了应用程序中相当常见的错误。 让我们看一下在设计实时应用程序时可能需要克服的一些陷阱。 活动时间 源生成数据的时间戳称为“ 事件时间” ,而应用程序处理数据的时间戳称为“ 处理时间” 。在实时数据流应用程序中,最常见的陷阱是无法区分这些时间戳。 让我们详细说明一下。 由于诸如代理中的GC较高或太多数据导致背压之类的多个问题,数据队列易出现延迟。我将事件表示为(E,P),其中E是事件时间戳(HH:MM:SS格式),P是处理时间戳。在理想世界中,E == P,但这在任何地方都不会发生。 假设我们收到以下数据 ('05:00:00','05:00:02'),('05:00:01','05:00:03'),('05:00:01','05:00: 03'),('05:00:01','05:00:05'), ('05:00:02','05:00:05'),('05:00:02',' 05

Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想

浪子不回头ぞ 提交于 2020-05-06 18:00:14
Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想 目录 Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想 0x00 摘要 0x01 Flink 是什么 0x02 Alink 是什么 0x03 Alink设计思路 1. 白手起家 2. 替代品如何造成威胁 3. 用户角度看设计 底层逻辑Flink 开发工具 4. 竞争对手角度看设计 5. 企业角度看设计 6. 设计原则总结 0x04 KMeans算法实现看设计 1. KMeans算法 2. Flink KMeans例子 3. Alink KMeans示例 KMeansTrainBatchOp KMeansPreallocateCentroid KMeansAssignCluster KMeansUpdateCentroids 4. 区别 代码量 耦合度 编程模式 0x05 参考 0x00 摘要 Alink 是阿里巴巴基于实时计算引擎 Flink 研发的新一代机器学习算法平台,是业界首个同时支持批式算法、流式算法的机器学习平台。本文将带领大家从多重角度出发来分析推测Alink的设计思路。 因为Alink的公开资料太少,所以以下均为自行揣测,肯定会有疏漏错误,希望大家指出,我会随时更新。 0x01 Flink 是什么 Apache Flink 是由Apache软件基金会开发的开源流处理框架

flink学习笔记-快速生成Flink项目

半腔热情 提交于 2020-05-06 01:08:57
说明:本文为《 Flink 大数据项目实战》学习笔记,想通过视频系统学习 Flink 这个最火爆的大数据计算框架的同学,推荐学习课程: Flink 大数据项目实战: http://t.cn/EJtKhaz 1. 快速生成 Flink 项目 1. 推荐开发工具 idea+maven+git 2. 推荐开发语言 Java 或者 Scala https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/java_api_quickstart.html 3.Flink 项目构建步骤 1 )通过 maven 构建 Flink 项目 这里我们选择构建 1.6.2 版本的 Flink 项目,打开终端输入如下命令: mvn archetype:generate -DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-java -DarchetypeVersion=1.6.2 项目构建过程中需要输入 groupId , artifactId , version 和 package 然后输入 y 确认 然后显示 Maven 项目构建成功 2 )打开 IDEA 导入 Flink 构建的 maven 项目 打开 IDEA 开发工具