实时流处理系统的用例

本文阐述了为什么比起Hadoop之类的知名技术,类似Apache Storm这样的系统更加有用。

让我们以经典的笔记本品牌实时情感分析(SENTIMENT ANALYSIS)为例,在进行观点分析时,处理流程应当如下图所示:

  • 从类似Twitter、Facebook、电子商务网站之类的不同来源收集数据。
  • 以一些“高吞吐量”这样的关键字为基础,我们筛选出了一些数据。
  • 为不同来源的各条信息生成情感分析。
  • 为存储处理的数据设立存储机制。

现在的问题在于:是否能够通过大数据系统来解决,请使用Hadoop来执行下列处理:

如果我们运行Hive Query、Pig Script或MapReduce的话,由于必须从HDFS(从硬盘读取)中读取数据,整个处理过程需要耗费数小时才能进行处理,因此理论上来说是无法实时执行数据处理的(它们遵循静态数据原则)。

由于Hadoop设计时就是为了执行批处理,而且需要花费数小时才能生成结果,因此针对Hadoop是否能够执行实时处理的问题,答案是否定的。

总结一下,由于所使用的是基于批处理的方式,Hadoop无法解决实时问题。

有很多需要我们执行实时数据处理的用例,比如:

  • 反欺诈
  • 情绪分析
  • 日志监控
  • 处理客户的行为

那么现在我们如何处理这类特殊的问题呢?我们需要使用一些实时的流数据机制(一切都在内存中完成,遵循动态数据原则)。

实时处理的典型流程如下图:

不过想要使用这种方法,需要先解决下面这些问题:

  1. 数据流:数据需要在数据管道(Data Pipeline)中以流数据的形式发送。
  2. 容错:如果有某个进程出错,那么故障转移机制是什么样的呢?
  3. 扩展:如果数据规模增长的话,能否很容易地扩展集群以增加处理数据的性能?
  4. 确保信息处理:是否能确保信息得到处理?
  5. 编程语言不可知论:是否会是独立的编程?

有一些类似Apache Storm之类的实时数据流机制能够帮助我们解决这些问题。现在我们试着回答上面的问题,看使用Apache Storm能否得出答案。

数据流

数据以元组的形式发送。

扩展

Storm是一个分布式平台,允许用户将更多节点添加到Storm集群运行环境中,以增加应用的吞吐量。

容错

在Storm中,工作是通过集群中的worker来执行的。如果有一个worker宕掉,Storm就会重启该worker,而如果worker所在的节点也宕掉,则Storm就会重启集群中一些其他节点上的worker。

确保信息处理

Storm如果该元组在处理时出现故障,Storm会重启出错的元组。

程序语言不可知论

可以在任何编程语言中编写。即使Storm平台运行在JVM之上,运行在上面的应用也可以用任何编程语言编写,可以使用标准的I/O来读写。

希望本文有助于澄清:利用Apache Storm之类的工具处理大数据问题时,在实时流数据中的使用问题。

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2016-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我是攻城师

2015 Bossie评选:最佳的10款开源大数据工具

364100
来自专栏蓝天

大数据利器2018版

31130
来自专栏about云

学习Storm、Spark Streaming流式实时分布式计算系统的设计要点

阅读导读: 1.流式实时分布式计算系统有哪些共同特征,产生的背景是什么? 2.原语设计的有哪些要点? 3.元语设计中Spark、storm是如何设计的? 4.S...

639150
来自专栏CSDN技术头条

LinkedIn开源大数据计算引擎 Cubert,并为此创建新的语言

【编者按】Linkedin周二宣布开源其大数据计算引擎Cubert,其名字来源于鲁比克方块(Rubik’s Cube),为了让开发人员更容易使用Cubert,而...

22150
来自专栏ThoughtWorks

2015.5 技术雷达 | 平台篇

(点击图片可查看大图) Apache Spark(spark.apache.org)作为一种快速和通用的大规模数据处理引擎已取得稳步进展。该引擎基于Scala实...

35350
来自专栏携程技术中心

干货 | 携程机票实时数据处理实践及应用

18150
来自专栏腾讯大数据的专栏

腾讯大数据之新一代资源管理与调度平台

云计算、大数据经常意味着需要调动数据中心大量的资源,如何能够快速的匹配合适资源,需要一个聪明的“大脑”。数据平台部的TDW,是腾讯自主研发,支持百PB级的数据存...

50980
来自专栏大数据-Hadoop、Spark

头条大数据实践

一、 除了日志数据,关系数据库中的数据也是数据分析的重要来源。在数据的采集方式上,用Spark实现类 Sqoop 的分布式抓取替代了早期定期用单机全量抓取 M...

15920
来自专栏数据科学与人工智能

【Spark研究】如何用 Spark 快速开发应用?

如果你还没有仔细研究过 Spark (或者还不知道 Spark 是什么),那么本文很好地介绍了 Spark。描述了基本的数据结构、shell ,并对其包含的 A...

24880
来自专栏大数据和云计算技术

云​大数据和计算技术周报(第45期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

7510

扫码关注云+社区

领取腾讯云代金券