Flink计算架构简析

在谈Flink之前, 我们在一个更高的层面上来理解一下数据的处理, 包括数据类型和处理模型两个大的方面.

首先, 是数据的类型

我们把数据处理分成两种模型:

    无边界的数据: 可以理解为持续追加的无线数据及

    有边界的数据: 有线的, 不会更改的数据

在现实的处理环境, 我们通常认为的有边界的或者批处理数据其实都是无边界的数据集. 不管这个数据是在HDFS上的一系列的目录文件, 还是类似于kafka的日志系统, 其实都属于无边界的数据集合.

为了有更好的认识, 这里列举几个典型的无边界的数据集:

- 终端用户在移动和web应用的交互数据

- 物理传感器产生的持续的测量数据

- 资本市场产生的经济数据

- 服务器日志数据

然后是数据的处理模式

    流式处理: 持续的处理所产生的数据

    批处理: 在一个有限的时间窗口内执行处理逻辑, 并且在计算完成后释放资源

我们可以以任一种处理模式来处理任一种数据类型, 尽管不完美. 比如, 我们可以用批处理方式来处理无边界数据, 这样会有一些潜在问题, 问题来自于窗口数据, 状态管理和无序数据. 

依靠自己的流处理模型, Flink非常适合流式的处理无边界的数据. 合适的处理模型和数据类型的匹配有很多有点, 比如精度和效率.

为什么选择Flink?

Flink是分布式的流处理框架:

- Provides results that are accurate, even in the case of out-of-order or late-arriving data

- Is stateful and fault-tolerant and can seamlessly recover from failures while maintaining exactly-once application state

- Performs at large scale, running on thousands of nodes with very good throughput and latency characteristics

Flink的这些feature对计算精确的数据很重要, 并且在flink的流处理模式下是使能的, 他们包括: 状态管理, 处理无序数据, 动态窗口.

- Flink可以保证在有状态的计算时exactly-once, 有状态指的是应用维护数据的聚合或者摘要信息, 即使出现了失败的事件.

- Flink支持event time语义, 在流处理和批处理时, 这个在乱序和事件延迟的case下很有意义

- Flink支持灵活的处理窗口配置, 可以基于时间, 数量或者事件驱动的窗口会话. 窗口的大小可以根据不同的触发条件灵活的配置, 

- Flink的很轻量级的实现了容错, 可以保证高吞吐和exactly-once. Flink的错误恢复是无数据丢失的, 并且在可靠性和延迟上的代驾是可以忽略的.

- Flink实现了高吞吐和低延迟, 下图是Flink和Storm的性能比较.

- Flink的savepoints提供了状态保存和恢复机制, 使得可以更新应用或者重启历史数据, 并且保证过程中不丢失数据和最少的宕机时间.

- Flink既适用于大规模的集群场景, 也可以工作于单点模式, 支持YARN和Mesos

Flink, 流处理模式和有边界数据的说明

Flink有针对无边界数据的DataStream API和有边界数据的DataSet接口.

我们介绍了流处理模式, 也就是一次处理一个事件, 这个很明显适用于无边界的流数据, 不过有边界的数据又是怎么适用于流处理架构的呢. 其实这个关系很自然, 有边界数据只是无边界数据的一个特殊case, 所以所有的流处理概念都是通用的.

如图, 正是DataSet工作的流程, 有边界的数据被处理成有限的stream, 与无边界的数据相比只有细微的不同. 当然Flink这个牛逼的框架也可以在一个执行引擎中同时处理有边界和无边界的两种数据.

Runtime

Flink的核心是分布式流计算引擎, 也就是说每次处理一个消息事件, 而不是一系列的批处理.

Flink的API:

- DataStream API: It is for programs that implement transformations on data streams (e.g., filtering, updating state, defining windows, aggregating).

DataSet API: It is for programs that implement transformations on data sets (e.g., filtering, mapping, joining, grouping).

Table API: It is a SQL-like expression language for relational stream and batch processing that can be easily embedded in Flink’s DataSet and DataStream APIs (Java and Scala).

Streaming SQL: enables SQL queries to be executed on streaming and batch tables. The syntax is based on Apache Calcite™.

Flink同时也提供了一些特殊库, 来支持复杂的事件处理, 机器学习, 图计算以及Storm兼容.

Flink的处理框架简单描述如下, 包括:

- Data source:Incoming data that Flink processes

- Transformations:The processing step, when Flink modifies incoming data

- Data sink:Where Flink sends data after processing

Flink 生态:

The connectors:
    Apache Kafka(sink/source)

    Elasticsearch(sink)
    Elasticsearch 2.x(sink)
    HDFS(sink)
    RabbitMQ(sink/source)
    Amazon Kinesis Streams(sink/source)
    Twitter(source)
    Apache NiFi(sink/source)
    Apache Cassandra(sink)
    Redis, Flume, and ActiveMQ (via Apache Bahir)(sink)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容