Apache Flink 实现的数据流体系结构

data Artisans应用程序工程总监Jamie Grier最近在OSCON 2016 Conference大会发言谈到了使用Apache Flink构建的一种数据流体系结构。同时还谈到了数据流应用程序的构建块。

数据流体系结构可用于处理随着时间流逝以事件流方式持续生成的数据,这一点不同于传统的静态数据集。相对于传统的集中式“状态化”数据库和数据仓库,数据流应用程序可以处理事件流以及针对历史事件汇总而来的应用程序本地状态。流式数据处理的一些优势包括:

降低从信号到决策的过程延迟

通过统一的方式处理实时和历史数据

Time travel查询

Apache Flink是一种开源的分布式流化和批量化数据处理平台。Flink的诞生受到了Google Data Flow模型的启发,可支持Java和Scala语言开发的Stream Processing API。相比其他流式数据处理框架,Flink中不存在微批量(Micro batching)数据,而是使用了一种“一次一条消息”的流处理技术。

Jamie介绍了状态流处理并展示了Flink应用程序的代码范例,以及使用开源时序数据库和Graphana可视化工具Influxdb进行监控的方法。

同时他还介绍了流处理过程中窗口(Windowing)的概念以及处理时间(Processing Time)和事件时间(Event Time)的窗口概念。处理时间的窗口会对流数据的分析产生影响,并会导致数据处理过程中出现某些错误。在事件时间方法中,窗口来自于数据,而非时钟时间。对于事件时间,可通过数据嵌入的时间戳对数据进行处理,这样即可获得更精确的结果。

Jamie还介绍了在应用程序中使用Flink时的错误处理和容错机制。Flink中的Savepoints功能可在不丢失任何状态的情况下对程序和Flink集群进行更新。如果要对实时数据进行流处理,此时Savepoints数据快照会显得非常重要。

如果你想详细了解Apache Flink,可访问他们的网站。此外Flink Forward 2016 Conference活动将于九月在柏林召开,提交提案的截止日期为2016年6月30日。

文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-09-09 05:21:14

Apache Flink 实现的数据流体系结构的相关文章

Apache Flink实现的数据流体系结构

data Artisans应用程序工程总监Jamie Grier最近在OSCON 2016 Conference大会发言谈到了使用Apache Flink构建的一种数据流体系结构.同时还谈到了数据流应用程序的构建块. 数据流体系结构可用于处理随着时间流逝以事件流方式持续生成的数据,这一点不同于传统的静态数据集.相对于传统的集中式"状态化"数据库和数据仓库,数据流应用程序可以处理事件流以及针对历史事件汇总而来的应用程序本地状态.流式数据处理的一些优势包括: 降低从信号到决策的过程延迟 通

Apache Flink数据流的Fault Tolerance机制

简介 Apache Flink提供了一个失败恢复机制来使得数据流应用可以持续得恢复状态.这个机制可以保证即使线上环境的失败,程序的状态也将能保证数据流达到exactly once的一致性.注意这里也可以选择降级到保证at least once的一致性级别. 失败恢复机制持续地构建分布式流式数据的快照.对于那些只有少量状态的流处理应用,这些快照都是非常轻量级的并且可以以非常频繁的频率来构建快照而不需要太多地考虑性能问题.而流应用的状态被存储在一个可配置的持久化存储(比如master节点或者HDFS

Apache Flink fault tolerance源码剖析(五)

上一篇文章我们谈论了保存点的相关内容,其中就谈到了保存点状态的存储.这篇文章我们来探讨用户程序状态的存储,也是在之前的文章中多次提及的state backend(中文暂译为状态终端). 基于数据流API而编写的程序经常以各种各样的形式保存着状态: 窗口收集/聚合元素(这里的元素可以看作是窗口的状态)直到它们被触发 转换函数可能会使用key/value状态接口来存储数据 转换函数可能实现Checkpointed接口来让它们的本地变量受益于fault tolerant机制 当检查点机制工作时,上面谈

Apache Flink fault tolerance源码剖析(四)

上篇文章我们探讨了Zookeeper在Flink的fault tolerance中发挥的作用(存储/恢复已完成的检查点以及检查点编号生成器). 这篇文章会谈论一种特殊的检查点,Flink将之命名为--Savepoint(保存点). 因为保存点只不过是一种特殊的检查点,所以在Flink中并没有太多代码实现.但作为一个特性,值得花费一个篇幅来介绍. 检查点VS保存点 使用数据流API编写的程序可以从保存点来恢复执行.保存点允许你在更新程序的同时还能保证Flink集群不丢失任何状态. 保存点是人工触发

深入理解Apache Flink核心技术

Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望能够帮助读者对Flink有更加深入的了解,对其他大数据系统开发者也能有所裨益.本文假设读者已对MapReduce.Spark及Storm等大数据处理框架有所了解,同时熟悉流处理与批处理的基本概念. Flink简介 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布.数据通信以

《Apache Flink 官方文档》前言

本文档针对的是Apache Flink的 1.2.0版本. Apache Flink是一个分布式流式和批量数据处理程序的开源平台.Flink的核心是流式数据引擎,Flink通过数据流的分布式计算的方式提供数据的分发.通信和容错.Flink也构建了流引擎之上的批处理,覆盖本地迭代上的支持,内存管理和程序优化. 1.第一步 基本概念:先从Flink的数据流程序模型和分布式实时环境的基本概念开始.这会帮助你完全理解文档的其他部分,包括安装和编程指南.强烈推荐先阅读这部分内容. 快速开始:在你的本机上运

《Apache Flink官方文档》 Apache Flink介绍

下面是关于Apache Flink(以下简称Filnk)框架和流式计算的概述.为了更专业.更技术化的介绍,在Flink文档中推荐了一些"概念性"的文章. 1.无穷数据集的持续计算 在我们详细介绍Flink前,复习一下当我们计算数据选择运算模型时,很可能会遇到的一个更高级别的数据集类型.下面有两个观点经常容易混淆,很有必要去澄清它们. (1)两种数据集类型: ①无穷数据集:无穷的持续集成的数据集合. ②有界数据集:有限不会改变的数据集合. 很多现实中传统地认为有界或者批量的数据集合实际上

Apache Flink源码解析之stream-window

window(窗口)是Flink流处理中非常重要的概念,本篇我们来对窗口相关的概念以及关联的实现进行解析.本篇的内容主要集中在package org.apache.flink.streaming.api.windowing下. Window 一个Window代表有限对象的集合.一个窗口有一个最大的时间戳,该时间戳意味着在其代表的某时间点--所有应该进入这个窗口的元素都已经到达. Flink的根窗口对象是一个抽象类,只提供了一个抽象方法: public abstract long maxTimes

Apache Flink改进及其在阿里巴巴搜索中的应用

本文整理自阿里搜索基础设施团队研究员蒋晓伟在Flink Forward 2016大会上的演讲,原始演讲视频可以在这里查看. 以下为演讲整理 阿里是世界上最大的电子商务零售商,其2015年的年销售额就超过了eBay和Amazon的总和,达3940亿.Alibaba Search,个性化搜索和推荐平台,既是顾客的关键入口,也承担了大部分的在线收益.因此,阿里搜索基础设施团队一直在努力改进产品. 对于电子商务网站上的搜索引擎,到底什么最重要?必然是实时地为每一位用户提供最相关和准确的搜索结果.以阿里巴