10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

Apache Spark 和 Apache Flink,如何选择?

  • 2016-03-29
  • 本文字数:940 字

    阅读完需:约 3 分钟

Spark Streaming 和 Flink 都能提供恰好一次的保证,即每条记录都仅处理一次。与其他处理系统(比如 Storm)相比,它们都能提供一个非常高的吞吐量。它们的容错开销也都非常低。之前,Spark 提供了可配置的内存管理,而 Flink 提供了自动内存管理,但从 1.6 版本开始,Spark 也提供了自动内存管理。这两个流处理引擎确实有许多相似之处,但它们也有着巨大的差异。近日, MapR Technologies 产品经理 Balaji Mohanam 在公司内部的白板演示中比较 Apache Spark Apache Flink 的不同之处,用户可以参考这种比较做出选择。

为了方便说明,Mohanam 首先对批处理、微批处理和连续流操作符等三种计算模式进行了解释。批处理基本上处理静态数据,一次读入大量数据进行处理并生成输出。微批处理结合了批处理和连续流操作符,将输入分成多个微批次进行处理。从根本上讲,微批处理是一个“收集然后处理”的计算模型。连续流操作符则在数据到达时进行处理,没有任何数据收集或处理延迟。

Apache Spark 和 Apache Flink 的主要差别就在于计算模型不同。Spark 采用了微批处理模型,而 Flink 采用了基于操作符的连续流模型。因此,对 Apache Spark 和 Apache Flink 的选择实际上变成了计算模型的选择,而这种选择需要在延迟、吞吐量和可靠性等多个方面进行权衡。

随着数据处理能力的提高,企业开始认识到,信息的价值在数据产生的时候最高。他们希望在数据产生时处理数据,这就是说需要一个实时处理系统。但也不是所有情况都需要实时系统。Mohanam 分别例举了一些适合微批处理或实时流处理的场景。比如有两个广告科技行业的场景:一个是聚合来自不同 IP 地址的不同 IP 请求,将 IP 归入黑名单或白名单;另一个是设法阻止一个黑名单 IP 的特定请求。前者使用微批处理就可以,而后者就需要实时流处理。再比如,在电信行业,统计特定用户使用的带宽,微批处理可能是一个更高效的方案,而网络异常检测就需要实时流处理了。也有一些场景,微批处理和实时流处理都适用,如在 IoT 行业查看特定工业设备的使用情况。

要了解更多内容,可以观看 Mohanam 的演示视频


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-03-29 19:005069
用户头像

发布了 1008 篇内容, 共 432.2 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

2021大厂Android面试经历,安卓面试宝典

android 面试 移动开发

1-3年Java开发工程师面试经验分享,深入浅出Java开发

Java 面试 后端

2021大厂Android面试题精选,BAT面试文档

android 面试 移动开发

10天拿到字节跳动Java岗位offer,Java编程入门自学

Java 面试 后端

2021大厂Android面试最火问题,【Android面试题】

android 面试 移动开发

Vite + Vue3 + OpenLayers 切换地图容器

德育处主任

大前端 地图 vite Vue3 openlayers

2021大厂Android面试最火问题,透彻分析源码

android 面试 移动开发

1-3年的Java开发工程师看过来,阿里P8面试官都说太详细了

Java 面试 后端

2021大厂Android面试题精选,当上项目经理才知道

android 面试 移动开发

10天拿到阿里Java岗offer,Java框架面试题整理

Java 面试 后端

5种Python使用定时调度任务的方式

华为云开发者联盟

Python 定时调度 调度 循环 调度任务

2021大厂Android春招面试经历,Android开发必须掌握

android 面试 移动开发

TDSQL核心架构

腾讯云数据库

数据库 tdsql

2021互联网大厂Android面经合集,重磅来袭

android 面试 移动开发

2021中级Android开发面试解答,Android面试送分题

android 面试 移动开发

2021中级Android开发面试解答,腾讯Android面试题

android 面试 移动开发

TDSQL核心特性:极具挑战的“四高”服务与安全可运维

腾讯云数据库

数据库 tdsql

分布式TDSQL的实践

腾讯云数据库

数据库 tdsql

2021大厂Android开发面试总结+解答,查缺补漏

android 面试 移动开发

2021大厂Android面试经验,阿里P7亲自讲解

android 面试 移动开发

2021大厂Android面试题精选,Android工程师必备知识

android 面试 移动开发

2021大厂Android面试题精选,鸿蒙教程来袭

android 面试 移动开发

TDSQL-C PostgreSQL(CynosDB) 内核解密-披荆斩棘,勇往直前的腾讯云数据库

腾讯云数据库

数据库 tdsql

2021大厂安卓面试集合,建议收藏

android 面试 移动开发

TDSQL金融级特性之:数据强一致性保障

腾讯云数据库

数据库 tdsql

10天拿到字节跳动Java岗位offer,java高分面试指南

Java 面试 后端

腾讯TDSQL:带你认识真正的金融级自主可控分布式数据库

腾讯云数据库

数据库 tdsql

TDSQL产品简介以及适用场景

腾讯云数据库

数据库 tdsql

又到“乌镇时间” | VoneDAO助力企业打造高效协作新生态

旺链科技

区块链 互联网大会 分布式自治组织

10天拿到字节跳动Java岗位offer,深入讲解Java

Java 面试 后端

拓路前行-TDSQL追求极致体验的这一路

腾讯云数据库

数据库 tdsql

Apache Spark和Apache Flink,如何选择?_语言 & 开发_谢丽_InfoQ精选文章