Flink

本文将简单介绍Flink的概念、优点、架构,以及Flink比Spark做的好的地方

什么是Flink?

借官网的一句话。Apache Flink是一个框架和分布式处理引擎,用于在无边界和有边界的数据流上进行有状态的计算。

首先,Flink和Spark一样,都是分布式的计算框架,用来处理大规模数据;其次,用于在无边界和有边界的数据上计算,有无边界起始就是我们常说的批和流,Flink现在在流处理方面所向披靡,在近来的版本中也一直在推流批一体的东西,有一统流批的趋势;最后,有状态的计算,Flink提供了强大的状态支持,能够很便捷的实现很多复杂需求。

Flink优点

  • 事件驱动,支持事件时间
  • 强大的状态支持
  • 精确一次的保证
  • 分层API:DataSet/DataStream、Table/SQL
  • 检查点。Checkpoint、SavePoint
  • 高吞吐,低延迟

分层抽象

在这里插入图片描述

  • 最底层是process api,用户可以最细粒度的对数据进行操作、状态管理等
  • 再上层是DataStream和DataSet,封装了基本的操作算子,可以完成大部分需求。
  • 再上层是Table API,可以将数据集注册为表,进行处理。
  • 最高层是SQL API,基于SQL进行处理。

架构

在这里插入图片描述

https://ci.apache.org/projects/flink/flink-docs-release-1.12/concepts/flink-architecture.html

Flink也是主从架构。客户端提交任务,JobManager负责管理调度,Task Manager负责干活。

Flink比Spark做的好的地方

  • Flink是真正的流处理,而Spark Streaming是基于微批实现的流。
  • 源码语言。Spark是Scala,Flink是Java,Java用的人还是多点吧。
  • 事件时间的支持。Spark只有批处理时间,Flink提供了ProcessTime、EventTime、IngestTime可选择。
  • 完整的窗口支持。Flink基于状态的加持,在窗口计算这块用起来很舒服。
  • 基于流的SQL处理。流批一体概念的提出可能一统计算框架。

最后

作为Spark的忠粉,每当身边一群不懂Spark的人在狂吹Flink、爆撵Spark时,都很不爽。但是Flink一统流批的趋势是无需争议的,打不过就加入他们。定个小目标,接下来持续输入、输出Flink内容。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值