Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Streaming with Apache Training

Streaming with Apache Training

作者头像
未来还未来
修改于 2019-03-05 06:48:37
修改于 2019-03-05 06:48:37
8240
举报
文章被收录于专栏:流式数据流式数据

Apache Flink流式传输

本次培训主要专注在四个重要的概念:连续处理流数据,事件时间,有状态的流处理和状态快照。

流处理

流是数据天然的栖息地,无论是来自Web服务器的事件,来自证券交易所的交易,还是来自工厂车间的机器传感器读数,数据都是作为流的一部分创建的。但是当我们分析数据时,我们可以围绕有界或无界流组织我们的处理过程,我们选择的范式会产生生远的影响。

批处理 是我们处理有界数据流时的工作范例。这种操作模式中我们可以选择在产生任何结果之前注入整个数据集,例如,对数据进行排序,计算全局统计信息或生成汇总所有输入的最终报告。

流处理 另一方面,流处理涉及无界数据流。从概念上来说,至少输入可能永远不会结束,因此我们被迫在数据抵达时进行连续处理。

在Flink中,应用程序由用户定义的算子转换的数据流组成。这些数据流形成有向图,这些图以一个或多个源开头,并以一个或多个接收器结束。

一个应用可能从流式源消费实时数据如消息队列或分布式日志,例如Apache Kafka或Kinesis。但是Flink也可以从很多数据源中获取有界的,历史的数据。类似的,Flink应用程序生成的结果流可以发送到各种系统,Flink中保存的状态可以通过REST API访问。

实时流处理

对于大多数流式应用而言,使用处理实时数据的相同代码重新处理历史数据并生成确定的,一致的结果是非常有价值的

同样关键的是注意时间触发的顺序,而不是事件被处理的顺序,以及能够推断一组事件何时完成。例如考虑电子商务交易或者金融交易中涉及的一系列事件。

这些对于实时流处理要求使用记录在数据流中的事件时间的时间戳,而不是使用处理数据的机器时间。

状态流处理

Flink的操作是有状态的。这意味着一个事件如何被处理取决于在此之前的事件所积累的影响。状态可能被用于一些简单的事情,例如计算每分钟显示在面板上的事件,或者用于一些复杂的事情,例如用于欺诈检测模型计算特征。

Flink应用程序在分布式集群上并行运行。给定运算符的各种并行实例将在单独的线程中独立执行,并且通常将在不同的机器上运行。

有状态运算符的并行实例集实际上是分片键值存储。每个并行实例负责处理特定键组的事件,并且这些键的状态保存在本地。

下图显示了作业图中前三个运算符的并行度为2的作业,终止于并行度为1的接收器。第三个运算符是有状态的,我们看到第二个和第三个运算符之间正在发生完全连接的网络洗牌。这样做是为了通过某个键对流进行分区,以便一起处理所有需要处理的事件。

状态始终在本地访问,这有助于Flink应用程序实现高吞吐量和低延迟。您可以选择在JVM堆上保持状态,或者它太大了,有效的组织在磁盘数据结构上。

强大的流处理

Flink能够通过状态快照和流重放的组合提供容错和精确一次语义。这些快照捕捉分布式管道的全部状态,将偏移记录到输入队列中,以及整个作业图中的状态,这是因为已经将数据摄取到该点。当发生故障时,源被倒带,状态恢复,并且恢复处理。如上所述,这些状态快照是异步捕获的,而不会妨碍正在进行的处理。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Flink 极简教程: 架构及原理 Apache Flink® — Stateful Computations over Data Streams
Apache Flink 是一个分布式流计算引擎,用于在无边界和有边界数据流上进行有状态的计算。
一个会写诗的程序员
2022/01/04
3.5K0
Flink 极简教程: 架构及原理 Apache Flink® — Stateful Computations over Data Streams
Flink 介绍
Apache Flink是一个分布式处理引擎,用于在无界和有界数据流上进行有状态的计算。它在所有的通用集群环境中都可以运行,在任意规模下都可以达到内存级的计算速度。
程序员白总
2024/02/18
3630
Flink 介绍
学习Flink,看这篇就够了
批处理在大数据世界有着悠久的历史。早期的大数据处理基本上是批处理的天下。批处理主要操作大容量的静态数据集,并在计算过程完成之后返回结果。所以批处理面对的数据集通常具有以下特征:
saintyyu
2021/11/22
3.3K1
学习Flink,看这篇就够了
什么是Flink?Flink能用来做什么?[通俗易懂]
Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
全栈程序员站长
2022/11/15
22.1K0
什么是Flink?Flink能用来做什么?[通俗易懂]
深度解读!新一代大数据引擎Flink厉害在哪?(附实现原理细节)
导语 | 大数据计算分为离线计算和实时计算,其中离线计算就是我们通常说的批计算,代表技术是Hadoop MapReduce、Hive等;实时计算也被称作流计算,代表技术是Storm、Spark Streaming、Flink等。本文系统地介绍了流式计算的相关知识,并着重介绍了Flink的实现原理细节,便于大家快速地理解和掌握流式计算,并基于Flink完成业务开发。 一、流式计算和批处理 批处理在大数据世界有着悠久的历史。早期的大数据处理基本上是批处理的天下。批处理主要操作大容量的静态数据集,并在计算过
腾讯云开发者
2021/11/10
1.7K0
Flink核心概念之有状态的流式处理
虽然数据流中的许多操作一次只查看一个单独的事件(例如事件解析器),但有些操作会记住跨多个事件的信息(例如窗口操作符)。 这些操作称为有状态的。
从大数据到人工智能
2022/01/28
1.2K0
Flink核心概念之有状态的流式处理
2024年最新Flink教程,从基础到就业,大家一起学习--基础篇
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。
小白的大数据之旅
2024/11/20
2970
2024年最新Flink教程,从基础到就业,大家一起学习--基础篇
Apache Flink实战(一) - 简介
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。 Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
JavaEdge
2019/04/26
2.4K0
Apache Flink实战(一) - 简介
Apache Flink:数据流编程模型
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
王小雷
2019/09/18
1.4K0
Apache Flink:数据流编程模型
Flink流式处理概念简介
一,抽象层次 Flink提供不同级别的抽象来开发流/批处理应用程序。 1,stateful streaming 最底层。它通过Process Function嵌入到DataStream API中。它允
Spark学习技巧
2018/01/30
2K0
Flink流式处理概念简介
【极数系列】Flink是什么?(02)
Flink文档:https://ci.apache.org/projects/flink/flink-docs-release-1.12/
夏之以寒
2024/03/04
1600
【极数系列】Flink是什么?(02)
Apache Flink快速入门-什么是Apache Flink
在数字化时代,企业每天都在面对持续不断增长的数据需要处理,这些数据可能来自IOT、移动或 Web 应用程序生成的采集温度、流量、定位、跟踪、监管、日志文件、网上购物数据、游戏玩家活动、社交网站信息或者是金融交易等。能够及时地处理并分析这些流数据对企业来说至关重要。传统的批处理拥有巨大吞吐量的优势,但是随之而来的是极其高延迟的缺陷。随着大数据系统的不断发展,传统的批处理已然无法全部满足对 时效性 要求愈加严苛的业务需求。为了适应逐渐变得实时的年代,大数据系统架构也由简单的批处理转向批流混合的Lambda架构,最后可能会逐渐演变成只有流计算的高精准高时效的Kappa架构。
jack.yang
2025/04/05
1420
Apache Flink快速入门-什么是Apache Flink
Cloudera中的流分析概览
Cloudera流分析(CSA)提供由Apache Flink支持的实时流处理和流分析。在CDP上的Flink提供了具有低延迟的灵活流解决方案,可以扩展到较大的吞吐量和状态。除Flink之外,CSA还包括SQL Stream Builder,可使用对数据流的SQL查询来提供数据分析经验。
大数据杂货铺
2021/05/20
1.2K0
Cloudera中的流分析概览
Flink(一)
Apache Flink(德语:快速灵巧,原德国柏林大学基金会项目)是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。ms级别水平。data flow+event sequence。
matt
2022/10/25
6200
Flink(一)
主流实时流处理计算框架Flink初体验
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。百度百科
百思不得小赵
2022/12/01
1.1K0
主流实时流处理计算框架Flink初体验
数据中心互联光网络之数据实时计算
本⽂主要针对波分运营管理系统展开介绍,即波分事件中⼼主要⽬的与技术⼿段浅谈。⽽开放光系统运营关键核⼼就是事件(event),运营事件的⽬标是⼀个事件解决⽹络的⼀个具体的问题。事件中⼼则是将⽹络所经历的所有事件准确的记录并汇集在⼀起。事件中⼼的每个事件需要准确描述⼀个具体的问题,并描述该问题带来的影响。所以我们研发了波分数据处理平台,其包含对性能数据标准定义、采集、数据实时计算功能。
MOSS-DZ
2023/05/12
4390
数据中心互联光网络之数据实时计算
Flink入门(四)——编程模型
flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性、高吞吐、低延迟等优势,本文简述flink的编程模型。
大数据流动
2019/12/19
1.1K0
Grab 基于 Apache Hudi 实现近乎实时的数据分析
在数据处理领域,数据分析师在数据湖上运行其即席查询。数据湖充当分析和生产环境之间的接口,可防止下游查询影响上游数据引入管道。为了确保数据湖中的数据处理效率,选择合适的存储格式至关重要。
ApacheHudi
2024/02/27
2420
Grab 基于 Apache Hudi 实现近乎实时的数据分析
Structured Streaming | Apache Spark中处理实时数据的声明式API
随着实时数据的日渐普及,企业需要流式计算系统满足可扩展、易用以及易整合进业务系统。Structured Streaming是一个高度抽象的API基于Spark Streaming的经验。Structured Streaming在两点上不同于其他的Streaming API比如Google DataFlow。 第一,不同于要求用户构造物理执行计划的API,Structured Streaming是一个基于静态关系查询(使用SQL或DataFrames表示)的完全自动递增的声明性API。 第二,Structured Streaming旨在支持端到端实时的应用,将流处理与批处理以及交互式分析结合起来。 我们发现,在实践中这种结合通常是关键的挑战。Structured Streaming的性能是Apache Flink的2倍,是Apacha Kafka 的90倍,这源于它使用的是Spark SQL的代码生成引擎。它也提供了丰富的操作特性,如回滚、代码更新、混合流\批处理执行。 我们通过实际数据库上百个生产部署的案例来描述系统的设计和使用,其中最大的每个月处理超过1PB的数据。
王知无-import_bigdata
2020/01/14
2.1K0
Structured Streaming | Apache Spark中处理实时数据的声明式API
Flink引擎介绍 | 青训营笔记
Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
鳄鱼儿
2024/05/21
2750
Flink引擎介绍 | 青训营笔记
相关推荐
Flink 极简教程: 架构及原理 Apache Flink® — Stateful Computations over Data Streams
更多 >
LV.0
Appannie大数据开发工程师
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档