Flink学习笔记(一):基础概念

1.有界/无界数据集

有界数据集
有界数据集对开发者来说都很熟悉,在常规的处理中我们都会从Mysql,文本等获取数据进行计算分析。我们在处理此类数据时,特点就是数据是静止不动的。也就是说,没有再进行追加。又或者说再处理的当时时刻不考虑追加写入操作。所以有界数据集又或者说是有时间边界。在某个时间内的结果进行计算。那么这种计算称之为批计算,批处理。Batch Processing
无界数据集
对于某些场景,类似于Kafka持续的计算等都被认定为无界数据集,无界数据集是会发生持续变更的、连续追加的。例如:服务器信令、网络传输流、实时日志信息等。对于此类持续变更、追加的数据的计算方式称之为流计算。Streaming Processing

有界数据集与无界数据集是一个相对模糊的概念,如果数据一条一条的经过处理引擎那么则可以认为是无界的,那么如果每间隔一分钟、一小时、一天进行一次计算那么则认为这一段时间的数据又相对是有界的。有界的数据又可以把数据一条一条的通过计算引擎,造成无界的数据集。所以,有界数据集与无界数据集可以存在互换的。因此业内也就开始追寻 批流统一 的框架。

能够同时实现批处理与流处理的框架有Apache Spark和Apache Flink,而Apache Spark的流处理场景是一个微批场景,也就是它会在特定的时间间隔发起一次计算。而不是每条都会触发计算。也就是相当于把无界数据集切分为小量的有界数据。

Apache Flink基于有界数据集与无界数据集的特点,最终将批处理与流处理混合到同一套引擎当中,用户使用Apache Flink引擎能够同时实现批处理与流处理任务。

2.Flink简介

Apache Flink 是由 Apache 软件基金会开发的开源流处理框架,其核心是用 Java 和 Scala 编写的分布式流数据处理引擎。Flink 以数据并行和流水线方式执行任意流数据程序,Flink 的流水线运行时系统可以执行批处理和流处理程序。此外,Flink 的运行时本身也支持迭代算法的执行。
Flink 提供高吞吐量低延迟的流数据处理引擎以及对事件时间处理和状态管理的支持。Flink应用程序在发生机器故障时具有容错能力,并且支持exactly-once语义。
Flink 并不提供自己的数据存储系统,但为Amazon Kinesis、Apache Kafka、HDFS、Apache Cassandra和ElasticSearch等系统提供了数据源和接收器

3.主流数据流处理框架特点比较

  1. Storm:支持低延迟,但是很难实现高吞吐,并且不能保证 exactly-once
  2. Sparking Streaming ( Storm Trident ):利用微批处理实现的流处理(将连续事件的流数据分割成一系列微小的批量作业),能够实现 exactly-once 语义,但不可能做到完全实时(毕竟还是批处理,不过还是能达到几秒甚至几亚秒的延迟)
  3. Flink:实时流处理,支持低延迟、高吞吐、exactly-once 语义、有状态的计算、基于事件时间的处理

相对来说,Flink实现了真正的流处理,并且做到了低延迟高吞吐exactly-once 语义;同时还支持有状态的计算(即使在发生故障时也能准确的处理计算状态) 和 基于事件时

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值