Apache Flink 的数据流编程模型 抽象层次 Flink 为开发流式应用和批式应用设计了不同的抽象层次 状态化的流 抽象层次的最底层是状态化的流,它通过 ProcessFunction 嵌入到 DataStream API 中,允许用户自由地处理来自一个或多个流的事件(event)以及使用一致的容错状态 此外,用户可以注册事件时间并处理时间回调(callback),这使得程序可以处理更复杂的计算 核心 API 大多数情况下用户不直接在上面描述的这种低的抽象层面上编程,取而代之的是使用所谓…
数据流编程模型 抽象级别 程序和数据流 并行数据流 窗口 时间 有状态操作 检查点(checkpoint)容错 批量流处理 下一步 抽象级别 flink针对 流式/批处理 应用提供了不同的抽象级别. 这个最低级别的抽象提供了有状态的流式操作.它是通过处理函数嵌入到DataStream API.它允许用户自由的处理一个或者多个数据流中的事件,并且使用一致,容错的状态.此外,用户可以注册回调事件时间和处理时间,允许程序实现复杂的计算. 实际上,大多数应用不需要上面描述的低级别抽象,而是针对Core…
抽象等级(Levels of Abstraction) Flink提供不同级别的抽象来开发流/批处理应用程序. Statefule Stream Processing: 是最低级别(底层)的抽象,只提供有状态的流.它通过ProcessFunction嵌入到DataStream API之中.它使得用户可以自由处理来源于一个或者多个流的事件 DataStream/DataSet API: 在我们的实际工作中,大多数的应用程序是不需要上文所描述的低级别(底层)抽象,而是相对于诸如DataStream…
分层抽象 The lowest level abstraction simply offers stateful streaming. It is embedded into the DataStream API via the Process Function. It allows users freely process events from one or more streams, and use consistent fault tolerant state. In addition,…
DataStream: DataStream 是 Flink 流处理 API 中最核心的数据结构.它代表了一个运行在多个分区上的并行流.一个 DataStream 可以从 StreamExecutionEnvironment 通过env.addSource(SourceFunction) 获得. DataStream 上的转换操作都是逐条的,比如 map(),flatMap(),filter().DataStream 也可以执行 rebalance(再平衡,用来减轻数据倾斜)和 broadcas…
flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性.高吞吐.低延迟等优势,本文简述flink的编程模型. 数据集类型: 无穷数据集:无穷的持续集成的数据集合 有界数据集:有限不会改变的数据集合 常见的无穷数据集有: 用户与客户端的实时交互数据 应用实时产生的日志 金融市场的实时交易记录 - 数据运算模型有哪些呢? 流式:只要数据一直在生产,计算就持续地运行 批处理:在预先定义的时间内运行计算,当完成时候释放计算机资源 Flink它可以处理有界的数据集,也可以处理无界的…
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 本课时我们主要介绍 Flink 的编程模型与其他框架比较. 本课时的内容主要介绍基于 Flink 的编程模型,包括 Flink 程序的基础处理语义和基本构成模块,并且和 Spark.Storm 进行比较,Flink 作为最新的分布式大数据处理引擎具有哪些独特的优势呢? Flink 的核心语义和架构模型 我们在讲解 F…
前言 Flink 是一种流式计算框架,为什么我会接触到 Flink 呢?因为我目前在负责的是监控平台的告警部分,负责采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topic 里面实时读取到监控数据,并将读取到的监控数据做一些 聚合/转换/计算 等操作,然后将计算后的结果与告警规则的阈值进行比较,然后做出相应的告警措施(钉钉群.邮件.短信.电话等).画了个简单的图如下: 目前告警这块的架构是这样的结构,刚进公司那会的时候,架构是所有的监控数据直接存在 ElasticS…
前言 Flink 是一种流式计算框架,为什么我会接触到 Flink 呢?因为我目前在负责的是监控平台的告警部分,负责采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topic 里面实时读取到监控数据,并将读取到的监控数据做一些 聚合/转换/计算 等操作,然后将计算后的结果与告警规则的阈值进行比较,然后做出相应的告警措施(钉钉群.邮件.短信.电话等).画了个简单的图如下: 目前告警这块的架构是这样的结构,刚进公司那会的时候,架构是所有的监控数据直接存在 ElasticS…
Apache Flink是什么 Flink是一款新的大数据处理引擎,目标是统一不同来源的数据处理.这个目标看起来和Spark和类似.没错,Flink也在尝试解决 Spark在解决的问题.这两套系统都在尝试建立一个统一的平台可以运行批量,流式,交互式,图处理,机器学习等应用.所以,Flink和Spark的目 标差别并不大,他们最主要的区别在于实现的细节,后面我会重点从不同的角度对比这两者. Apache Spark vs Apache Flink 1.抽象 Abstraction Spark中,对…