- 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面试手册 - 核心概念和基础篇
支持高吞吐、低延迟、高功能的流处理
支持无形态计算的 Exactly-once 语义
支持带有大事时间的窗口?(Window)?操作
支持基于轻量级分布式快照(Snapshot)实现的容错
支持高度机警的窗口 (Window) 操作,支持基于 time、count、session 以及 data-driven 的窗口操作
支持具有?Backpressure?功能的持续流模型
支持迭代计算
一个运转时同时支持 Batch on Streaming 处理和 Streaming 处理
Flink?在?JVM?内部实现了本人的内存管理
支持程序自动优化:避开特定情况下 Shuffle、排序等昂贵操作,两头结果有必要进行缓存
一、 简约引见一下 Flink
Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行无形态计算。并且 Flink 供应了数据分布、容错机制以及资源管理等核心功能。
Flink供应了诸多高笼统层的API以便用户编写分布式任务:
DataSet API, 对静态数据进行批处理操作,将静态数据笼统成分布式的数据集,用户可以便利地使用Flink供应的各种操作符对分布式数据集进行处理,支持Java、Scala和Python。
DataStream API,对数据流进行流处理操作,将流式的数据笼统成分布式的数据流,用户可以便利地对分布式数据流进行各种操作,支持Java和Scala。
Table API,对结构化数据进行查询操作,将结构化数据笼统成关系表,并通过类SQL的DSL对关系表进行各种查询操作,支持Java和Scala。
此外,Flink 还针对特定的应用领域供应了领域库,例如:Flink ML,Flink 的机器学习库,供应了机器学习Pipelines API并实现了多种机器学习算法。Gelly,Flink 的图计算库,供应了图计算的相关API及多种图计算算法实现。
二、 Flink 相比传统的 Spark Streaming 有什么区分?
这个问题是一个格外宏观的问题,由于两个框架的不同点格外之多。但是在面试时有格外重要的一点肯定要回答出来:Flink 是标准的实时处理引擎,基于大事驱动。而 Spark Streaming 是微批(Micro-Batch)的模型。
下面我们就分几个方面引见两个框架的次要区分:
1. 架构模型
Spark Streaming 在运转时的次要角色包括:Master、Worker、Driver、Executor,Flink 在运转时次要包含:Jobmanager、Taskmanager和Slot。
2. 任务调度
Spark Streaming 连续不断的生成微小的数据批次,构建有向无环图DAG,Spark Streaming 会依次创建 DStreamGraph、JobGenerator、JobScheduler。
Flink 依据用户提交的代码生成 StreamGraph,经过优化生成 JobGraph,然后提交给 JobManager进行处理,JobManager 会依据 JobGraph 生成 ExecutionGraph,ExecutionGraph 是 Flink 调度最核心的数据结构,JobManager 依据 ExecutionGraph 对 Job 进行调度。
3. 时间机制
Spark Streaming 支持的时间机制有限,只支持处理时间。Flink 支持了流处理程序在时间上的三个定义:处理时间、大事时间、注入时间。同时也支持?watermark机制来处理滞后数据。
4. 容错机制
对于 Spark Streaming 任务,我们可以设置 checkpoint,然后假如发生毛病并重启,我们可以从上次 checkpoint 之处恢复,但是这个行为只能使得数据不丢失,可能会反复处理,不能做到恰好一次处理语义。
Flink 则使用两阶段提交协议来处理这个问题。
三、 Flink 的组件栈有哪些?
依据 Flink 官网描述,Flink 是一个分层架构的系统,每一层所包含的组件都供应了特定的笼统,用来服务于上层组件。
自下而上,每一层分别代表:Deploy 层:该层次要涉及了Flink的部署模式,在上图中我们可以看出,Flink 支持包括local、Standalone、Cluster、Cloud等多种部署模式。Runtime 层:Runtime层供应了支持 Flink 计算的核心实现,比如:支持分布式 Stream 处理、JobGraph到ExecutionGraph的映射、调度等等,为上层API层供应基础服务。API层:API 层次要实现了面对流(Stream)处理和批(Batch)处理API,其中面对流
文档评论(0)