- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
双维度剖析Flink全体架构
Python爬虫与数据挖掘
1970-01-01
以下文章来源于数仓瑰宝库 ,作者张利兵 HYPERLINK
数仓瑰宝库
.
共享数据库、大数据、数据仓库等学问
点击上方“Python爬虫与数据挖掘”,进行关注
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
九层之台,起于累土。
导读:从2021年开源到现在,Flink已经进展成一套格外成熟的大数据处理引擎,同时被很多公司作为流数据处理平台的底层技术。本文为大家引见Flink的架构及其组成成分。
01架构引见
Flink系统架构次要分为APIs Libraries、Core和Deploy三层,如图1所示,其中APIs层次要实现了面对流处理对应的DataStream API,面对批处理对应的DataSet API。Libraries层也被称作Flink应用组件层,是依据API层的划分,在API层之上构建满足了特定应用领域的计算框架,分别对应了面对流处理和面对批处理两类,其中面对流处理支持CEP(简单大事处理)、基于类似SQL的操作(基于Table的关系操作);面对批处理支持Flink ML(机器学习库)、Gelly(图处理)。运转时层供应了Flink计算的全部核心实现,例如支持分布式Stream作业执行、JobGraph到ExecutionGraph的映射和调度等,为API层供应了基础服务。Deploy层支持多种部署模式,包括本地、集群(Standalone、YARN、Kubernetes)及云部署(GCE/EC2)。
图1 Flink全体架构
1、编程接口
Flink供应了多种笼统的编程接口,适用于不同层级的用户。数据分析人员和偏向业务的数据开发人员可以使用Flink SQL定义流式作业。如图2所示,Flink编程接口分为4层。
图2 Flink编程接口笼统
Flink SQL
一项大数据技术假如想被用户接受和使用,除了应具有先进的架构理念之外,另一点格外重要的就是要具有格外好的易用性。我们晓得虽然Pig中的操作愈加机警和高效,但是在都满足数据处理需求的前提下,数据开发者更情愿选择Hive作为大数据处理的开发工具。其中最重要的缘由是,Hive能够基于SQL标准进行拓展,提出了HQL言语,这就让很多只会SQL的用户也能够快速把握大数据处理技术。因而Hive技术很快得到普及。
对于Flink同样如此,假如想赢得更多的用户,就必需不断添加易用性。FlinkSQL基于关系型概念构建流式和离线处理应用,使用户能够愈加简约地通过SQL构建Flink作业。
Table API?
Flink SQL解析生成规律执行方案和物理执行方案,然后转换为Table之间的操作,最终转换为JobGraph并运转在集群上。Table API和Spark中的DataSet/DataFrame接口类似,都供应了面对领域言语的编程接口。相比Flink SQL,Table API愈加机警,既可以在Java Scala SDK中与DataStream和DataSet API相互转换,也能结合Flink SQL进行数据处理。
DataStream DataSet API
在晚期的Flink版本中,DataSet API和DataStream API分别用于流处理和批处理场景。DataSet用于处理离线数据集,DataStream用于处理流数据集。DataFlow模型期望使用同一套流处理框架统一处理有界和无界数据,那么为什么Flink还要笼统出两套编程接口来处理有界数据集和无界数据集呢?这也是近年来Flink社区不断探讨的话题。目前Table和SQL API层面虽然已经能够做到批流一体,但这仅是在规律层面上的,最终还是会转换成DataSet API和DataStream API对应的作业。后期Flink社区将渐渐通过DataStream处理有界数据集和无界数据集,社区已经在1.11版本中对DataStream API中的SourceFunction接口进行了重构,使DataStream可以接入和处理有界数据集。在后期的版本中,Flink将逐渐实现真正意义上的批流一体化。
Stateful Processing Function接口
Stateful Processing Function接口供应了强大且机警的编程力量,在其中可以直接操作形态数据、TimeService等服务,同时可以注册大事时间和处理时间回调定时器,使程序能够实现愈加简单的计算。使用Stateful Processing Function接口需要借助DataStream API。虽然Stateful Processing Function接口机警度很高,但是接
文档评论(0)