APP下载

聊聊Hadoop、Storm、Spark Streaming、Flink在大资料领域的现状

消息来源:baojiabao.com 作者: 发布时间:2026-05-19

报价宝综合消息聊聊Hadoop、Storm、Spark Streaming、Flink在大资料领域的现状

Hadoop 生态元件竞争激烈,Spark 优势明显,MapReduce 已进入维护模式

曾有开发人员表示,Hadoop 主要是被 MapReduce 拖累了,其实 HDFS 和 YARN 都还不错。堵俊平( 腾讯云专家研究员)则认为 MapReduce 拖累 Hadoop 的说法并不准确:

首先 MapReduce 还是有应用场景,只是越来越窄,它仍然适合某些超大规模资料处理的批量任务,且任务执行非常稳定;

其次,Hadoop 社群对于 MapReduce 的定位就是进入维护模式, 并不追求任何新的功能或效能演进,这样可以让资源投入到更新的计算框架,比如 Spark、Tez,促进其成熟。

HDFS 和 YARN 目前还是大资料领域分散式储存和资源排程系统的事实标准,不过也面临一些挑战。

对 HDFS 而言,在公有云领域,越来越多的大资料应用会选择跳过 HDFS 而直接使用云上的物件储存, 这样比较方便实现计算与储存分离,增加了资源弹性。

YARN 也面临着来自 Kubernetes 的强大挑战,尤其是原生的 docker 支援,更好的隔离性以及上面生态的完整性。不过 K8S 在大资料领域还是追赶者,在资源排程器以及和对各计算框架支援上还有很大的进步空间。

Spark 在计算框架方面基本上占据了主导地位,MapReduce 主要是一些历史应用,而 Tez 更像是 Hive 的专属执行引擎。

当前流处理引擎主角 Spark Streaming 和 Flink

流处理方面,早期的流处理引擎 Storm 正在退役,而当前唱主角的则是 Spark Streaming 和 Flink,这两个流处理引擎各有千秋,前者强在生态,后者则在架构方面有优势。

一个有意思的情况是,对于 Spark Streaming 和 Flink 的应用在国内外的情况很不一样,国内已经有大量的公司开始使用 Flink 构建自己的流处理平台(这可能和阿里在国内大力推广Flink技术有关系),但美国市场 Spark Streaming 还是占绝对主流的地位。当然,还有一些新的流处理框架,例如 Kafka Streams 等等,发展得也不错。

大资料SQL引擎

在大资料 SQL 引擎方面,四大主流引擎 Hive、SparkSQL、Presto 以及 Impala 仍然各有所长。

Hive 最早由 Facebook 开源贡献也是早年应用最广泛的大资料 SQL 引擎,和 MapReduce 一样,Hive 在业界的标签就是慢而稳定。其无私地提供了很多公共元件为其他引擎所使用,堪称业界良心,比如元资料服务 Hive Metastore、查询优化器 Calcite、列式储存 ORC 等。近年来,Hive 发展很快,例如查询优化方面采用了 CBO,在执行引擎方面用 Tez 来替换 MapReduce,通过 LLAP 来 cache 查询结果做优化,以及 ORC 储存不断演进。不过相比较而言,这些新技术从市场应用来说还不算成熟稳定,Hive 仍然被大量使用者定义为可靠的 ETL 工具而非即时查询产品。

SparkSQL 这两年发展迅猛,尤其在 Spark 进入 2.x 时代,发展更是突飞猛进。其优秀的 SQL 相容性(唯一全部 pass TPC-DS 全部 99 个 query 的开源大资料 SQL),卓越的效能、庞大且活跃的社群、完善的生态(机器学习、图计算、流处理等)都让 SparkSQL 从这几个开源产品中脱颖而出,在国内外市场得到了非常广泛的应用。

Presto 这两年应用也非常广泛,这款内存型 MPP 引擎的特点就是处理小规模资料会非常快,资料量大的时候会比较吃力。Impala 的效能也非常优异,不过其发展路线相对封闭,社群生态进展比较缓慢,SQL 相容性也比较差,使用者群体相对较小。

原文来自知乎平台( https://zhuanlan.zhihu.com/p/39439760),小编摘录了部分关于大资料处理框架当前现状的内容。

2020-01-01 22:51:00

相关文章