【观察】常用的流式框架(二)-- Spark与Flink

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介:
   Spark由加州大学伯克利分校于2009年开发,第二年开源,2014年成为Apache顶级项目。作为MapReduce的继任者,Spark可以提供高水准API(如RDD--可恢复分布式数据集;Dstream--离散无序的RDD),其社区在2015年就有超过1000名贡献者,知名的用户包括亚马逊、eBay、雅虎、IBM、百度等。
    2013年Spark Streaming成为Spark的核心,严格意义上说它是跑微批量(Micro-Batching)的架构,所以会有几秒钟的延时,但Spark Streaming支持丰富的状态数据、无重复传输并且扩展性极佳。一般地,流式数据经过Spark Streaming被切分成微批量,再由Spark引擎处理。

1

    Spark的一个应用就是统计网页访问量,可以用Python调取Spark Streming的接口,首先我们先读取服务端的站点地址(pageViews)并定义读取间隔,然后根据URL做Map算法将数据归类(ones--即每一个访问事件被定义为一个最小元素),最后使用Reduce算法将不同URL的GET事件聚合统计出浏览量。

2

    最后登场的是Flink,它于2010年由柏林工业大学、柏林洪堡大学和德国波茨坦普拉特拉学院联合开发,起初名字叫Stratosphere,在2014年进入Apache孵化计划并更名为Flink,2015年成为Apache顶级项目。Flink作为原生的流处理器,延时小于100毫秒;可以为应用提供流式或批量的虚拟API;支持数据表/SQL,CEP,机器学习,Gelly等多种特征库;目前的用户包括阿里巴巴、爱立信、奥拓,ResearchGate,Zalando等。
    Flink的架构将批量应用与流式应用在数据层汇聚,这个数据层可以分布式地部署在搭在Hadoop Yarn、Apache Mesos和Kubernetes上甚至可以单独作为集群搭建,无高可用之虞。此外Flink还提供多种API和库接口(有流式的及批量优化的)供第三方接入开发(Java/Scala/Python)

3

    Flink适合支持日事务处理量达几万亿条的应用、需要维护TB级状态数据的应用及有数千节点的应用,在处理大型状态数据的时候,Flink会将状态数据按时序分窗口按批次存储,恢复的时候也会从分布式文件系统种按批次恢复。

4

    当有任意Flink节点宕机时,系统是如何实现高可用的呢?Flink会将数据流按顺序切分成多个分区(Partition),然后为每个分区计算检查点(CheckPoints),在恢复节点时,只需重置检查点状态,然后将此检查点后的数据由别的节点上重播入宕机节点即可。

5

    介绍完了五种(Storm和Storm Trident算作两种,尽管)框架,我们来比较下他们的优劣势。

6

    对于数据的严密性,Storm和Samza都会检查至少一次;延时性角度Storm远小于100ms表现最优;但对于状态数据Storm和Trident只能处理小型数据,不及Samza、Spark Streaming和Flink;严格意义上说Trident和Spark Streaming是微批量的处理方式;由于Samza没有数据缓冲区,因此就不存在反压问题;除Storm外,另外四种架构都是能保证数据时序的;延展性方面,Strom、Trident和Spark Streaming表现更优,可以在运行时直接添加新的节点。
    根据在雅虎研究所的测试报告显示:“Storm和Flink的处理延时最低,Spark支持高的数据吞吐量,但代价就是会有较大延时。”
    除了这五大体系之外,还有一些非主流的流式处理系统,比如的google的Dataflow,IBM的InfoSphere Streams等,这里就不一一赘述了。

7

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
7天前
|
分布式计算 数据处理 Apache
Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
【10月更文挑战第10天】Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
46 1
|
13天前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
43 0
|
1月前
|
算法 API Apache
Flink CDC:新一代实时数据集成框架
本文源自阿里云实时计算团队 Apache Flink Committer 任庆盛在 Apache Asia CommunityOverCode 2024 的分享,涵盖 Flink CDC 的概念、版本历程、内部实现及社区未来规划。Flink CDC 是一种基于数据库日志的 CDC 技术实现的数据集成框架,能高效完成全量和增量数据的实时同步。自 2020 年以来,Flink CDC 经过多次迭代,已成为功能强大的实时数据集成工具,支持多种数据库和数据湖仓系统。未来将进一步扩展生态并提升稳定性。
440 1
Flink CDC:新一代实时数据集成框架
|
12天前
|
数据挖掘 物联网 数据处理
深入探讨Apache Flink:实时数据流处理的强大框架
在数据驱动时代,企业需高效处理实时数据流。Apache Flink作为开源流处理框架,以其高性能和灵活性成为首选平台。本文详细介绍Flink的核心特性和应用场景,包括实时流处理、强大的状态管理、灵活的窗口机制及批处理兼容性。无论在实时数据分析、金融服务、物联网还是广告技术领域,Flink均展现出巨大潜力,是企业实时数据处理的理想选择。随着大数据需求增长,Flink将继续在数据处理领域发挥重要作用。
44 0
|
2月前
|
分布式计算 资源调度 Shell
如何开始使用Spark框架?
【8月更文挑战第31天】如何开始使用Spark框架?
53 2
|
2月前
|
SQL 机器学习/深度学习 分布式计算
Spark框架
【8月更文挑战第31天】Spark框架
33 2
|
3月前
|
SQL 关系型数据库 MySQL
如何在Dataphin中构建Flink+Paimon流式湖仓方案
当前大数据处理工业界非常重要的一个大趋势是一体化,尤其是湖仓一体架构。与过去分散的数据仓库和数据湖不同,湖仓一体架构通过将数据存储和处理融为一体,不仅提升了数据访问速度和处理效率,还简化了数据管理流程,降低了资源成本。企业可以更轻松地实现数据治理和分析,从而快速决策。paimon是国内开源的,也是最年轻的成员。 本文主要演示如何在 Dataphin 产品中构建 Flink+Paimon 的流式湖仓方案。
7659 10
如何在Dataphin中构建Flink+Paimon流式湖仓方案
|
2月前
|
SQL 监控 大数据
Serverless 应用的监控与调试问题之Flink流式数仓对于工商银行的数据链路要如何简化
Serverless 应用的监控与调试问题之Flink流式数仓对于工商银行的数据链路要如何简化
|
3月前
|
存储 算法 物联网
海量数据实时计算利器:深入探索Tec(一个假设性技术框架)
总之,Tec作为海量数据实时计算利器,在推动数字化转型、提升业务效率、保障数据安全等方面发挥着重要作用。随着技术的不断进步和应用场景的不断拓展,Tec的未来发展前景将更加广阔。
|
3月前
|
分布式计算 数据处理 流计算
实时计算 Flink版产品使用问题之使用Spark ThriftServer查询同步到Hudi的数据时,如何实时查看数据变化
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。