前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink简介

Flink简介

作者头像
数据社
发布2020-05-24 14:04:43
1.4K0
发布2020-05-24 14:04:43
举报
文章被收录于专栏:数据社数据社

Flink概念

ApacheFlink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。

现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为它们所提供的SLA(Service-Level-Aggreement)是完全不相同的:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理。

Flink从另一个视角看待流处理和批处理,将二者统一起来:Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。

Flink特点

Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。

现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为它们所提供的SLA(Service-Level-Aggreement)是完全不相同的:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理。

Flink从另一个视角看待流处理和批处理,将二者统一起来:Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。

Flink技术栈

Flink首先支持Local的执行环境,所有模块组件都可以运行在同一个JVM进程中,主要是方便开发调试,使用者在开发Flink应用时可以在IDE环境中方便的本地运行或是设置断点进行代码调试。此外Flink支持Standalone模式进行分布式部署,Flink的JobManager和TaskManager可以部署在多台节点上,组成一个集群,管理集群资源,执行分布式任务。同时Flink也可以委托YARN进行资源管理,Flink的Job通过YARN申请资源。最后,Flink也支持Google和Amazon的公有云平台,Flink的Job可以直接提交到公有云上执行。用户开发的同一个Flink业务逻辑,无需任何修改,可随时迁移到不同的执行环境执行。

Flink架构

Client负责提交Flink作业,首先将用户的Flink Job翻译并优化成图状的Dataflow,并提交给JobManager,JobManager将Flink DataFlow切分成分布式task,并按照集群的资源配置调度task,将task分发到TaskManger执行。TaskManager可能有多个,执行具体的task,且负责task与task之间的数据传输。不同于MapReduce,Flink的TaskManger类似于Spark的Executor,task以线程而非进程的粒度在TaskManager中执行。在Standalone模式下,JobManger和TaskManager负责资源的管理,而在YARN模式下,JobManager相当于ApplicationMaster, 而TaskManger相当于Executor。只是负责task的调度与执行。

Flink编程模型

最底层级的抽象仅仅提供了有状态流。实际上,大多数应用并不需要上述的底层抽象,而是针对 核心API(Core APIs) 进行编程,比如DataStream API(有界或无界流数据)以及DataSet API(有界数据集)Table API 是以 表 为中心的声明式DSL,其中表可能会动态变化(在表达流数据时)。

Flink程序执行过程

Client负责提交Flink作业,首先将用户的Flink Job翻译并优化成图状的Dataflow,并提交给JobManager,JobManager将Flink DataFlow切分成分布式task,并按照集群的资源配置调度task,将task分发到TaskManger执行。TaskManager可能有多个,执行具体的task,且负责task与task之间的数据传输。不同于MapReduce,Flink的TaskManger类似于Spark的Executor,task以线程而非进程的粒度在TaskManager中执行。在Standalone模式下,JobManger和TaskManager负责资源的管理,而在YARN模式下,JobManager相当于ApplicationMaster, 而TaskManger相当于Executor。只是负责task的调度与执行

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flink概念
  • Flink特点
  • Flink技术栈
  • Flink架构
  • Flink编程模型
  • Flink程序执行过程
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档