相比Spark等传统模式,Flink 和 K8S是怎样的结合

Apache Flink 是近年来越来越流行的一款开源大数据计算引擎,它同时支持了批处理和流处理。大数据起源自批处理,Spark最初的定位就是改进Hadoop, 更快速的进行批处理。而Storm擅长的则是进行无状态的流计算(在无状态的流计算领域, 它的延迟是最小的), 进而出现的Flink则是Storm的下一代解决方案。它既可以处理stream data也可以处理batch data,可以同时兼顾Spark以及Spark streaming的功能。Flink在运行中主要有三个组件组成,JobClient,JobManager 和 TaskManager。

实时计算产品通常提供两种模式,共享型与独享型。在这样的模式下,用户不需要关心整个集群的运维。开发时,使用Blink SQL,用开箱即用的metric收集和展示。同时,作业的监控和异常时报警,也能得到保证。

新模式Flink on K8S,在功能、引擎和托管模式上,都有变化。

功能上,基于Flink的特性,它的常驻进程,类似于在线业务的App,作业发布后,修改频率比较低。用户在开发控制台提交并控制作业,可使用多样的可插拔的增值功能。

在引擎上,基于开源Flink版本,有了以下改造。提供增量Checkpoint。SQL优化器和执行器的改造更近完善,提供Unified SQL。在Runtime上,提供了一套统一且高效的算子框架,有更加灵活的chaining策略和自定义调度插件。

托管模式采用半托管的方式,集群部署在ECS和K8S上,灵活性也更强。

Flink on K8S,充分利用K8S的优势。K8S 可以很好地集成其他集群维护工具,如监控工具普罗米修斯,同时在资源弹性方面,K8S 可以很方便地进行扩缩容。它的设计初衷,就是为在线应用服务的,设计目标是帮助在线应用更好的发布及管理,同时,很好的实现资源的隔离。更重要的是,发展至今,K8S有了一定的生态优势,也来越多的用户使用,也让这个工具越来越好。

上一篇:Prometheus简单配置


下一篇:Elasticsearch 既是搜索引擎又是数据库?真的有那么全能吗?