写点什么

为什么越来越多的公司在使用 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:007060
用户头像

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

关注

评论

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

进阶面试皆宜!阿里强推Java程序员进阶笔记,差距不止一点点

Java你猿哥

Java 面试 面经 八股文 Java八股文

【网易云商】记一次实遇的 MySQL--index merge 死锁历程

网易云信

MySQL 数据库 数据库死锁

通过 Amazon Managed Microsoft Active Directory 运行混合 Active Directory 服务

亚马逊云科技 (Amazon Web Services)

Amazon

OneFlow源码解析:Eager模式下的设备管理与并发执行

OneFlow

类 ChatGPT 开源软件,开发者用的上吗?

开源雨林

人工智能 开源软件 ChatGPT

Flink CDC 专题首发|每天 10 分钟,解锁新一代数据集成框架

Apache Flink

大数据 flink 实时计算

屡获殊荣丨Dubbo 开源 12 周年年度总结与规划

阿里巴巴云原生

阿里云 开源 云原生 dubbo

降本增效:12种常见接口优化方案总结

程序员小毕

Java 程序员 性能优化 后端 架构师

火山引擎DataLeap一招教你避坑“数据开发”中的资源隔离问题

字节跳动数据平台

大数据 数据治理 资源隔离 数据研发 企业号 3 月 PK 榜

C++开发者必读经典书籍推荐

小万哥

c++ 程序员 后端 开发 推荐书籍

程序员必修课:阿里性能优化全解终开源!设计+代码+JVM三飞

Java你猿哥

Java 性能优化 JVM 面经 jvm优化

小巧简单的图像处理软件:Acorn 激活版

真大的脸盆

Mac 图像处理 Mac 软件 图像编辑工具

从数仓发展史浅析数仓未来技术趋势

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

刷爆LeetCode!字节技术官亲码算法面试进阶神技太香了

Java你猿哥

Java 数据结构 算法 面经 左程云

局域网IP扫描软件:IP Scanner Pro 激活版

真大的脸盆

Mac Mac 软件 局域网管理 IP扫描工具

【网易云商】记一次实遇的 MySQL--index merge 死锁历程

网易智企

MySQL 数据库

Rainbond的 Gateway API 插件制作实践

北京好雨科技有限公司

Kubernetes API Gateway rainbond

数仓如何进行表级控制analyze

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

得帆云iPaaS是主数据必备工具

得帆信息

集成

不会性能调优,被面试官狂虐!全靠阿里Java性能调优全彩手册死撑

做梦都在改BUG

Java 性能优化 JVM 性能调优

MobTech|移动应用开发中的消息推送

MobTech袤博科技

车载小程序改善车载设备体验与性能,打造智能出行生态圈

没有用户名丶

小程序容器

ACK Net Exporter 与 sysAK 出击:一次深水区的网络疑难问题排查经历

阿里巴巴云原生

阿里云 云原生 网络 容器w

中康数字科技:基于大模型的医学文本信息处理与抽取

飞桨PaddlePaddle

中间件:数字化时代系统集成商的得力助手

FinFish

中间件 系统集成 小程序容器 软件中间件

2023年Java岗面试八股文及答案整理(金三银四最新版)

采菊东篱下

Java 程序员 面试

合约一键跟单带单软件开发交易平台定制(源码搭建)

开发v-hkkf5566

在 Flutter 多人视频中实现虚拟背景、美颜与空间音效

声网

flutter AI 虚拟背景 美颜

GitHub爆火!阿里高级架构师30天整理的《Java超全进阶教程》PDF版分享

开心学Java

Java redis JVM 架构师 进阶笔记

龙蜥白皮书精选:跨云-边-端的只读文件系统 EROFS

OpenAnolis小助手

镜像 操作系统 白皮书 龙蜥技术 EROFS

数禾科技 AI 模型服务 Serverless 容器化之旅

阿里巴巴云原生

阿里云 Serverless 云原生 Knative 容器化

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