美文网首页
Storm入门

Storm入门

作者: 学术界末流打工人 | 来源:发表于2020-02-01 20:47 被阅读0次

Storm 基本介绍

什么是 Storm

首先Storm是Apache顶级项目之一
Storm 官网

Storm 是

  • 免费的
  • 开源的
  • 分布式的
  • 实时计算系统

它可以容易并可靠的处理无界(unbounded)的流式数据

  • ubounded: 无界,无界的数据像一直流的水,不间断的数据流
  • bounded: Hadoop/Spark SQL 离线数据, input output

它可以像hadoop处理batch数据一样处理实时的流数据

Storm应用场景

  • 实时数据分析(realtime analytics)
  • 在线机器学习(online machine learning)
  • 时序计算(continuous computation)
  • 分布式 RPC (distributed RPC)
  • ETL
  • and more

Storm特点

  • fast:a million tuples processed per second per node
  • 可扩展的(scalable)
  • 容错(fault-tolerant)
  • 可以保证数据都可以被处理 (guarantees your data will be processed)
  • and is easy to set up and operate.

Storm可以集成正在使用的消息队列和数据库技术Apache Storm integrates with the queueing and database technologies you already use. An Apache Storm topology consumes streams of data and processes those streams in arbitrarily complex ways, repartitioning the streams between each stage of the computation however needed. Read more in the tutorial.

Storm历史

Storm 产生于BackType公司,
后来BackType被Twitter公司收购,
2011.9 Storm开源,捐献给Apache

Storm 与 Hadoop 对比

类别 Storm Hadoop
数据来源 处理的是实时新增的某一笔数据(实时数据) 处理的是HDFS上TB级别的数据(历史数据)
处理过程 由用户定义处理流程,流程中可以包含多个步骤,每个步骤可以是数据源(SPOUT)或处理逻辑(BOLT) 分MAP阶段到REDUCE阶段
进程是否结束 没有结束状态,到最后一步时,就停在那,直到有新数据进入时再从头开始 有结束状态,每次启动去申请资源,所有进程作业全部跑完才会释放。
处理速度 只要处理新增的某一笔数据即可,可以做到很快 处理HDFS上TB级别数据为目的,处理速度慢
适用场景 要处理某一新增数据时用的,要讲时效性 要处理批量数据时用的,不讲究时效性

Storm 和 Spark Streaming 对比

Spark Streaming 结构图 Spark Streaming 流处理过程

由上图看Spark Streaming不是真正的流处理,而是将数据切分为很多的mini-batch输入到Spark Engine进行处理。

Storm:如果使用场景只是处理流数据,然后存储,或者对数据实时性有较高要求的场景,适合使用
Spark Streaming: 意义在于打通整个流程,例如处理后的数据需要进行其他操作,例如要进行机器学习,调用mllib处理,但是Spark Streaming 需要调整参数才可以降低流处理的延迟

Storm 优势

  • 简单编程
  • 多语言支持
  • 支持水平扩展
  • 容错性强
  • 可靠的消息保证
  • 快速的消息处理

Storm 现状与发展趋势

现状:很多大公司再用,例如 阿里巴巴,爱奇艺,雅虎等。

Storm应用案例

一淘-实时分析系统:实时分析用户的属性,并反馈给搜索引擎

最初,用户属性分析是通过每天在云梯上定时运行的MR job来完成的。为了满足实时性的要求,希望能够实时分析用户的行为日志,将最新的用户属性反馈给搜索引擎,能够为用户展现最贴近其当前需求的结果。

携程-网站性能监控:实时分析系统监控携程网的网站性能

利用HTML5提供的performance标准获得可用的指标,并记录日志。Storm集群实时分析日志和入库。使用DRPC聚合成报表,通过历史数据对比等判断规则,触发预警事件。

阿里妈妈-用户画像:实时计算用户的兴趣数据

为了更加精准投放广告,阿里妈妈后台计算引擎需要维护每个用户的兴趣点(理想状态是,你对什么感兴趣,就向你投放哪类广告)。用户兴趣主要基于用户的历史行为、用户的实时查询、用户的实时点击、用户的地理信息而得,其中实时查询、实时点击等用户行为都是实时数据。考虑到系统的实时性,阿里妈妈使用Storm维护用户兴趣数据,并在此基础上进行受众定向的广告投放。

发展趋势

  1. 社区发展,活跃度
  2. 企业需求
  3. 大数据相关的大会,Storm主题的数量在上升
  4. 互联网

小结

Storm能实现高频数据和大规模数据的实时处理


References

  1. Storm 官网
  2. Storm和Hadoop的区别整理
  3. 大数据Storm相比于Spark、Hadoop有哪些优势(摘录)
  4. Storm 介绍
  5. 基于Storm构建实时热力分布项目实战

相关文章

网友评论

      本文标题:Storm入门

      本文链接:https://www.haomeiwen.com/subject/nerxxhtx.html