Flink 简介和理解

**

什么是 Flink

**

Apache Flink 是一个分布式大数据处理的引擎,可对有限的数据流和无线数据流进行有状态的计算,可部署在各种集群环境,对各种大小的数据规模进行快速计算

有限数据流:数据分批次执行完的
无限数据流: 一直接收计算,不停歇的

Flink的历史

早在 2008 年,Flink 的前身已经是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了 ASF(Apache Software Foundation)的顶级项目之一

Flink的商业公司 Data Artisans,位于柏林的,公司成立于2014年,共获得两轮融资共计650万欧。该公司旨在为企业提供大规模数据处理解决方案,使企业可以管理和部署实时数据,实时反馈数据,做更快、更精准的商业决策。目前,ING, Netflix 和 Uber 等企业都通过 Data Artisans 的 Apache Flink 平台部署大规模分布式应用,如实时数据分析、机器学习、搜索、排序推荐和欺诈风险等。

2019年1月8日,阿里巴巴以 9000 万欧元收购该公司

Flink的特点

1 批流统一
2 支持高吞吐、低延迟、高性能的流处
3 支持带有事件时间的窗口(Window)操作
4 支持有状态计算的Exactly-once语义
5 支持高度灵活的窗口(Window)操作,支持基于time、count、 session窗口操作
6 支持具有Backpressure功能的持续流模型
7 支持基于轻量级分布式快照(Snapshot)实现的容错
8 支持迭代计算
9 Flink在JVM内部实现了自己的内存管理
10 支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存

Flink与其他框架的对比

在这里插入图片描述

Spark就是为离线计算而设计的,在Spark生态体系中,不论是流处理和批处理都是底层引擎都是 Spark Core,Spark Streaming 将微批次小任务不停的提交到Spark引擎,从而实现准实时计算,SparkStreaming只不过是一种特殊的批处理而已。

Spark Streaming存在的问题

处理延迟较高
对状态的支持不完美
对窗口的支持不灵活
不支持EventTime

Flink就是为实时计算而设计的,Flink可以同时实现批处理和流处理,Flink将批处理(即有有界数据)视作一种特殊的流处理。

标题Flink架构体系

在这里插入图片描述

JobManager:

也称之为Master,用于协调分布式执行,它用来调度task,协调检查点,协调失败时恢复等。Flink运行时至少存在一个master,如果配置高可用模式则会存在多个master,它们其中有一个是leader,而其他的都是standby。

TaskManager:

也称之为Worker,用于执行一个dataflow的task、数据缓冲和Data Streams的数据交换,Flink运行时至少会存在一个TaskManager。JobManager和TaskManager可以直接运行在物理机上,或者运行YARN这样的资源调度框架,TaskManager通过网络连接到JobManager,通过RPC通信告知自身的可用性进而获得任务分配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值