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

本文涉及的产品
实时计算 Flink 版,1000CU*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+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
11月前
|
分布式计算 数据处理 Apache
Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
【10月更文挑战第10天】Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
1121 1
|
6月前
|
消息中间件 关系型数据库 MySQL
基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成
基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成
639 0
|
10月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
672 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
7月前
|
消息中间件 关系型数据库 MySQL
基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成
本教程展示如何使用Flink CDC YAML快速构建从MySQL到Kafka的流式数据集成作业,涵盖整库同步和表结构变更同步。无需编写Java/Scala代码或安装IDE,所有操作在Flink CDC CLI中完成。首先准备Flink Standalone集群和Docker环境(包括MySQL、Kafka和Zookeeper),然后通过配置YAML文件提交任务,实现数据同步。教程还介绍了路由变更、写入多个分区、输出格式设置及上游表名到下游Topic的映射等功能,并提供详细的命令和示例。最后,包含环境清理步骤以确保资源释放。
581 2
基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成
|
10月前
|
SQL 流计算 关系型数据库
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
阿里云OpenLake解决方案建立在开放可控的OpenLake湖仓之上,提供大数据搜索与AI一体化服务。通过元数据管理平台DLF管理结构化、半结构化和非结构化数据,提供湖仓数据表和文件的安全访问及IO加速,并支持大数据、搜索和AI多引擎对接。本文为您介绍以Flink作为Openlake方案的核心计算引擎,通过流式数据湖仓Paimon(使用DLF 2.0存储)和EMR StarRocks搭建流式湖仓。
961 5
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
|
8月前
|
SQL 分布式计算 Java
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
923 0
|
10月前
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
273 1
|
10月前
|
SQL 分布式计算 数据处理
Structured Streaming和Flink实时计算框架的对比
本文对比了Structured Streaming和Flink两大流处理框架。Structured Streaming基于Spark SQL,具有良好的可扩展性和容错性,支持多种数据源和输出格式。Flink则以低延迟、高吞吐和一致性著称,适合毫秒级的流处理任务。文章详细分析了两者在编程模型、窗口操作、写入模式、时间语义、API和库、状态管理和生态系统等方面的优劣势。
|
3月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
190 0
|
6月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
286 79

热门文章

最新文章