HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

为什么越来越多的公司在使用 Spark Streaming

  • 2016-01-03
  • 本文字数:1607 字

    阅读完需:约 5 分钟

Databricks 最近对 1400 多家 Spark 用户进行了一次调查,结果显示这些用户对 Spark Streaming 的使用率与 2014 年相比增长了 56%,另外,有 48% 的受访者将 Spark Streaming 标记为最常用的 Spark 组件。在 Spark Streaming 不断增长的用户群中,Uber、Netflix 和 Pinterest 等家喻户晓的公司赫然在列,那么为什么使用 Spark Streaming 加速业务发展的公司越来越多呢?最近 Spark Streaming 的主要开发人员 Tathagata Das 在 DataNami 上发表了一篇文章,从需求、功能以及用户场景等方面对此进行了介绍

流分析的需求

现在,几乎所有的公司都是一家软件公司,它们实时地监控传感器、物联网设备、社交网络和在线事务系统产生的数据,然后通过大规模、实时的流处理系统对其进行分析从而实现快速响应。此外,公司还会使用这些数据生成日报和业务模型。也就是说,现代流处理框架不仅需要应对实时场景,还需要处理预处理和后处理等非实时场景。

例如,电商需要对用户在线购买时产生的数据(包括日期、时间、物品、价格等)进行实时分析完成广告推送和相关性推荐。银行需要使用训练好的欺诈模型实时地对每一笔交易进行检测从而定位欺诈行为。

Spark Streaming 不仅能够非常好地解决这些问题,同时它还统一了技术框架,使用了与 Spark 一致的编程模型和处理引擎。而在 Spark Streaming 出现之前,用户需要借助多种开源软件才能构建出具有流处理、批处理和机器学习能力的系统。

Spark Streaming 的能力

Spark Streaming 是在 2013 年被添加到 Apache Spark 中的,作为核心 Spark API 的扩展它允许数据工程师和数据科学家实时地处理来自于 Kafka、Flume 以及 Amazon Kinesis 等多种源的数据。这种对不同数据的统一处理能力就是 Spark Streaming 会被大家迅速采用的关键原因之一。
Spark Streaming 能够按照 batch size(如 1 秒)将输入数据分成一段段的离散数据流(Discretized Stream,即 DStream),这些流具有与 RDD 一致的核心数据抽象,能够与 MLlib 和 Spark SQL 等 Spark 组件无缝集成。
通过 Spark Streaming 开发者能够容易地使用一种框架满足所有的处理需求,例如通过 MLlib 离线训练模型,然后直接在 Spark Streaming 中使用训练好的模型在线处理实时数据。同时,开发者编写的代码和业务逻辑也能够在流处理、批处理和交互式处理引擎中共享和重用。此外,流数据源中的数据还可以与很多其他的 Spark SQL 能够访问的静态数据源进行联合。例如,在将 Amazon Redshift 的静态数据推送到下游系统之前,可以先将其加载到 Spark 的内存中进行处理以丰富流数据。

用例——从 Uber 到 Pinterest

虽然针对不同的目标和业务案例使用 Spark Streaming 的方式也不同,但其主要场景包括:

  • 流 ETL——将数据推入存储系统之前对其进行清洗和聚合
  • 触发器——实时检测异常行为并触发相关的处理逻辑
  • 数据浓缩——将实时数据与静态数据浓缩成更为精炼的数据以用于实时分析
  • 复杂会话和持续学习——将与实时会话相关的事件(例如用户登陆 Web 网站或者应用程序之后的行为)组合起来进行分析。

例如,Uber 通过 Kafka、Spark Streaming 和 HDFS 构建了持续性的 ETL 管道,该管道首先对每天从移动用户那里收集到的 TB 级的事件数据进行转换,将原始的非结构化事件数据转换成结构化的数据,然后再进行实时地遥测分析。Pinterest 的 ETL 数据管道始于 Kafka,通过 Spark Streaming 将数据推入 Spark 中实时分析全球用户对 Pin 的使用情况,从而优化推荐引擎为用户显示更相关的 Pin。Netflix 也是通过 Kafka 和 Spark Streaming 构建了实时引擎,对每天从各种数据源接收到的数十亿事件进行分析完成电影推荐。


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

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2016-01-03 18:007030
用户头像

发布了 321 篇内容, 共 118.8 次阅读, 收获喜欢 19 次。

关注

评论

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

Intellij IDEA 右击没有run

程李文华

系统/子系统/模块/组件/框架/架构

gen_jin

30岁,就被大厂抛弃了

J.Smile

求职

数据同步,应该如何设计

迹_Jason

从微服务到Service Mesh

博文视点Broadview

架构 微服务 Service Mesh istio 架构师

作业 - 1 & 2

Happy-Coming

Homework

数据库周刊27丨6月最新国产数据库排行;OB成立新公司奥星贝斯;腾讯云发布图数据库TGDB;Oracle坏块修复;MySQL故障排查导图;经典SQL语句大全...

墨天轮

数据库

作业一:食堂就餐卡系统设计

seng man

极客大学架构师训练营

vs code中使用vetur对eslint格式化

玏佾

vscode

LocalDateTime和Date的比较与区别

彭阿三

时间格式化 LocalDateTime Date

<<架构师训练营>>第一周作业

R20114

极客大学架构师训练营

面向对象五大基本原则

彭阿三

面向对象设计 面向对象五个基本原则 基本原则

使用VSCode连接到IBM Cloud区块链网络

程序那些事

智能合约 hyperledger fabric ibm cloud

2020年6月11日 高性能MySQL

瑞克与莫迪

搭建websocket消息推送服务,必须要考虑的几个问题

GoEasy消息推送

websocket 消息推送 即时通讯

独立开发者为什么不需要运营也能月薪几万,甚至几十万?

非著名程序员

程序员 独立开发者 副业赚钱 程序人生 提升认知

钟离昧的一梭子架构师之旅

XxxxxxxMr

架构第一周-学习总结

seng man

架构第一课学习总结

师哥

游戏夜读 | 如何成长为游戏人?

game1night

可视化算法网站汇总,从此简单学算法!(附动图)

王磊

Java 算法

【写作群星榜】6.5~6.11写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

02-kubernetes自建CA及双向TLS认证

绿星雪碧

Kubernetes TLS CA证书

架构师训练营第一周学习总结

R20114

你并不理解i++和++i

flyhero

Java 程序员 JVM i++

钟离昧的第一张架构设计图之旅

XxxxxxxMr

关于UML、4+1视图、系统架构的思考

吴建中

极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课

John(易筋)

极客时间 极客大学 架构设计 极客大学架构师训练营 架构文档

非结构化数据可视化 —— 现在与未来

做技术BP的文案Gou

人工智能 大数据 数据可视化 非结构化数据

读笔 | 既然拖延症难以根治,不妨暂且享受它

张鸱鸺

读书笔记 时间管理 随笔杂谈

Android 无埋点从入门到放弃:了解 Java 字节码

GrowingIO技术专栏

为什么越来越多的公司在使用Spark Streaming_语言 & 开发_孙镜涛_InfoQ精选文章