【翻译】Big Data Analysis: Apache Storm Perspective 大数据分析:Apache Storm视角

【翻译】Big Data Analysis: Apache Storm Perspective 大数据分析:Apache Storm视角

摘要 Abstract

技术的繁荣导致了新概念和新挑战的出现。大数据是当今人们谈论的术语之一。在商业竞争中,大数据正成为竞争优势的同义词。尽管大数据带来了巨大的好处,但也伴随着一些严峻的挑战,当涉及到大数据分析时,它需要一些严肃的思考。在业界最受信任的实时处理和容错工具Apache Storm的帮助下,本研究利用Twitter数据样本,探索大数据术语及其分析概念。

关键词 - Big Data, Apache Storm, real-time processing, open Source.

1 介绍 Introduction

​ 大数据已经成为最重要的技术之一,它改变了企业使用信息的方式,以改善其商业模式和体验。大数据是一段时间以来出现的数据技术管理的结合。大数据使企业能够在正确的时间、正确的动作管理、存储和使用海量数据,从而获得准确性和效率。大数据的关键在于必须以一种满足业务需求的方式管理数据。许多企业正在以不同的方式来收集巨大的数据,这有助于他们发现隐藏的模式,这些隐藏的模式存在于巨大的数据中,可以给他们的商业模式带来革命。随着企业开始评估新的大数据结果的类型,引用[1]将会告诉你答案。要执行大数据结果,就必须建立基金会,支持数据的管理、传播和多功能性。因此,建立业务和专门的过程来使用这个重要的工程模式是至关重要的。在流处理中,与体积的概念相反,速度的概念是决定性的。因此需要一种处理工具,它可以以更快的速度处理新生成的信息,保证处理和低延迟。因此,需要新的武器来为如此快速的信息做准备。“Apache Storm”是实时计算工具的领导者之一,它保证了以极低的延迟处理新生成的信息。Hadoop是目前使用最多的工具;尽管Hadoop工作得很好,但它只是批量处理数据,这就是为什么它肯定不是分析最新形式数据的最佳工具。实时处理数据现在是一种越来越普遍的需求。这种现象被称为流处理,换句话说,在连续运动中分析实时数据。本研究仅限于使用twitter作为大数据的来源,不会解决大数据分析中通常会出现的所有问题,但本研究会尝试处理连续的tweets流,而不是像Hadoop那样批量处理数据。本文将重点探讨大数据分析及其工具,包括Apache Strom,并将在第2节中介绍可用工具与Apache Strom的比较及其说明;第三节将讨论材料和方法;第4节将讨论使用Strom分析大数据的结果;最后第五部分是讨论和未来的工作。

2 相关文献综述 Review Of Related Literature

​ 大数据这个术语被许多组织使用,但并没有一个标准的定义。大数据意味着大量的信息;然而,将信息分类为大数据不仅是大数据的突出特征。 而是三种不同的属性,即数量、种类和速度,结合在一起创造了大数据。这三个属性通常被称为大数据的3v。现在,组织不仅仅是管理他们的信息。组织外的人创造了更多的实时信息,这些信息对于熟练地理解业务非常重要。基于这几点,实时信息来源于许多不同种类的不同来源;它可以是来自非正式社区、图片信息、地理区域、日志和传感器信息等的内容。依赖于同质数据结构的传统数据库无法处理此异构数据,因此不太适合大数据[2]。那么我们所说的“实时”是什么意思呢?首先,首先要理解,这个术语可以有两个不同的观点,这取决于这个术语是在什么背景下使用的。如果在信息的上下文中使用它,则意味着转换最新的可用信息,在生成大量数据时处理这些数据。另一方面,如果一个实时框架被用来捕捉Twitter流中的漂移,那么实时的想法可能会被推迟几秒钟。如今,这个词确实是一个令人费解的词,经常被误用。总的来说,当谈到实时处理时,它意味着以非常低的延迟[3]来处理数据。流处理被设计来分析和操作实时生成的数据,也就是在一段时间和缓冲期间内反复使用“连续查询”的操作。流处理使我们能够分析流,也就是说,在流的运行时提取数学或统计信息分析。流处理解决方案通过高可扩展性、高可用性和高容错架构实时处理大数据。这使我们能够分析动态[4]的数据。

A. 可用工具 Available Tools

下面是一些用于大数据分析的开源工具:

1. Apache HBase

​ Apache HBase是一个基于Java的开源软件,能够存储大数据。它本质上是高度非关系的,并提供类似谷歌的Bigtable的功能来存储稀疏的数据。HBase广泛应用于大数据的随机、实时访问,运行于HDFS[5]之上。

2. Hadoop

​ Apache Hadoop项目是处理大数据的开源软件。Apache Hadoop的关键特性是它的可靠性、可伸缩性和处理模型。它允许使用分布式编程范式跨机器集群处理大型数据集。它以小批次的形式处理信息,并且使用MapReduce框架对数据进行处理,称为批处理软件[6]。

3. Apache Spark

​ Apache Spark项目是基于开源的快速大规模数据处理项目,它依赖于集群计算系统。与Apache Hadoop一样,它也被设计为批量操作,但是批处理窗口的大小非常小。它提供了Java、Scala、Python三种不同语言来提升开发的灵活性。它还提供了一套丰富的工具来处理SQL,包括Spark SQL,用于机器学习的MLlib,用于处理图形GraphX,以及用于流分析的Spark Streaming[7]。

4. Yahoo S4

2010年10月,雅虎发布了雅虎S4。2011年加入Apache Foundation家族,进入Apache孵化器。雅虎S4允许开发者设计可以处理实时数据流的应用程序。它的灵感来自于MapReduce模型,以分布式的方式处理数据。它支持模块化编程模型,即开发人员可以在Java中开发即插即用的模块。在Yahoo S4中开发的模块可以被整合到设计更先进的实时处理应用[8]中。

5. Apache Storm

​ 2010年12月,Nathan Marz提出了一个想法,开发一个可以作为单个程序呈现的流处理系统。这个想法产生了一个叫做Storm的新项目。Apache Storm使开发人员能够构建实时分布式处理系统,它可以非常快速地处理无限的数据流。它也被称为实时数据的Hadoop。Apache Storm具有高度的可扩展性,易于使用,并提供低延迟和有保证的数据处理。它提供了一个非常简单的体系结构来构建称为拓扑的应用程序。它使开发人员可以在任何编程语言中开发他们的逻辑,这种语言支持基于基于stdin/stdout的json协议的通信。2014年9月17日,Apache Storm成为Apache家族的一部分。

B. Apache Strom与其他工具的比较 Comparison of Apache Strom with other tools

下表1将大数据开源工具与Apache Strom[9]进行比较:

​ 表1

其他工具开发者类型区别
HBaseApache批式Storm提供实时的数据处理,而HBase(通过HDFS)不处理,而是提供低延迟的数据读取,供以后查询。
HadoopApache批式主要区别在于Storm可以实时处理元组流(传入的数据),而Hadoop可以通过MapReduce任务进行批处理。
SparkUC Berkeley AMPLab批式描述区别的一种方式是,Apache Spark是一个批处理框架,它能够进行微批处理,也称为Spark流,而Apache Storm是实时流处理框架,也可以执行微批处理,也称为Storm-trident。所以在架构上它们是非常不同的,但在功能方面有一些相似之处。使用微批处理,可以以增加延迟为代价实现更高的吞吐量。在Spark中,这是不可避免的,而在Storm中,人们可以使用核心API (spouts和bolt)进行一次处理,以避免微批处理带来的固有延迟开销。最后,许多企业将Storm作为一个成熟的工具使用,而Spark Streaming仍然是一个新的工具。
S4Yahoo!流式主要区别在于,storm提供了高性能的处理和线程编程支持。

C. 为什么是Apache Storm?Why Apache Storm?

5个关键属性使Apache Storm成为处理实时无穷数据的首选工具,如下[10]所述:

  • 易于使用
  • 快速-基准测试显示对每个节点每秒可以处理数百万字节数据
  • 容错-保持所有工作节点的跟踪,当一个节点死亡时,Apache Storm重新启动另一个节点的进程
  • 可靠-至少一次语义的可靠性保证数据处理
  • 可伸缩性-在一个机器集群上并行处理数据

下面列出的是主要标准,在此基础上,人们可以决定何时使用Apache Storm[11]:

  • 容错:高容错
  • 延迟:亚秒级别
  • 处理模型:实时流处理模型
  • 编程语言依赖性:任何编程语言
  • 可靠性:每个元组数据至少处理一次
  • 可伸缩性:高可伸缩性

3 方法 Material & Methods

​ 大数据是现代科技术语,它改变了世界看待数据的方式,以及所有处理数据的方法和原则。大数据的数据收集与我们传统的数据收集方式和技术完全不同。所以从技术上讲,本文将使用Twitter流媒体API来访问Twitter大数据作为大数据样本。Storm可以轻松可靠地处理无限的数据流,就像Hadoop处理批处理一样实现实时处理。本实验将使用实时数据执行三个不同的场景,并收集统计数据,用于分析处理工具并得出一些结论。

A. 研究工具 Research Instrument

在这项研究中,Twitter被用作大数据来源,使用Apache Storm作为测试工具,并使用了以下研究工具:

  • Apache Storm:处理实时数据
  • 大数据API(s):如Twitter API,实时获取数据
  • 一个Net应用程序:记录工具的性能和可靠性

4 结果 Results

本节演示和分析使用twitter流API为实验目的收集的数据。这项研究旨在分析twitter的大数据流,使用最先进的Apache Storm开源工具从大量数据中识别特定的模式。为了实验目的,在twitter上的twits直播流上执行了以下场景:

  • 收集特定时期内的十大词汇
  • 收集特定时期内的十大语言
  • 一个特定的“单词”在特定时间被推特的次数

A. 场景1:过去10分钟内收集到的前10个单词 Scenario-1: Top ten words collected in last 10 minutes

统计:

  • 总时长=10分钟(603秒)

  • 这段时间内分析的tweets总数=67271

  • 总字数=482874

  • 表二为列表形式的前十个单词

  • 图表显示的前10个单词如图4-1所示

    ​ 表2

    S. No.单词 Word频率 Frequency
    1Jessie15585
    2Lady18543
    3Gaga18552
    4Rey23664
    5Lana23677
    6Del23690
    7Swift23881
    8Taylor24284
    9Coldplay25330
    10Mtvstars62726

在这里插入图片描述

​ 图1

B. 场景2:过去10分钟内使用前10的语言 Scenario-2: Top ten languages collected in last 10 minutes.

统计:

  • 这段时间内分析的推文总数=24000

  • 唯一语言的总数=48

  • 总持续时间=10分钟(605秒)

  • 表格形式的前十种语言见表3

  • 图2显示了图表中最常用的10种语言

    ​ 表3

S. No.语言Language频率 Frequency
1Korean588
2Thai600
3Turkish612
4French860
5Spanish1011
6Indonesian1257
7Russian1818
8Arabic2559
9English5826
10Japanese7053

在这里插入图片描述

​ 图2

C. 场景3:在过去10分钟内包含“mtvstarts”的推特数量 Scenario-3: Number of times “mtvstars” being used in twits twitted in last 10 minutes.

统计:

  • 搜索字符串= mtvstars
  • 持续时间= 10分钟(600秒)
  • twits数=42125
  • 使用“mtvstars”一词发布的twits数量列表见表四
  • 图3显示了使用单词“mtvstars”发布的twits数量

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

​ 图3

5 讨论及未来工作 Discussion & Future Work

​ 许多公司一直在寻求将海量信息整合到数据中。大多数的实践是从回答指定的商业问题开始的,比如,客户对我们品牌有什么积极的看法?在什么条件下我们可以可以完成更多的任务?大数据调查对于任何业务的所有栈持有者来说都是非常必要的。从高层领导到重要的其他专家,比如IT专家。本研究旨在帮助企业理解大数据及其概念。它让这些公司在传统数据库和大数据工具之间做出选择。它赋予了IT部门经理在提前考虑大数据的能力。这也使开发者能够理解Storm在分析和处理大数据方面的作用。本研究在基础设施和数据方面存在一定的实验局限性。就数据而言,API提供的推文大约只有总推文的1%。在硬件配置方面,实验并不是在专用服务器上进行的,而是使用搭载corei3处理器、2.53 GHz频率、4gb RAM、32位windows 7 professional edition的笔记本电脑HP630进行的,针对上述考虑,我们执行了以下三种场景:

  • 过去10分钟里推特上的前10个单词
  • 过去10分钟里最常用的10种语言
  • 在最后10分钟内匹配给定搜索关键字的twitter项目列表

​ 上述三个场景都成功执行,证明Apache Storm可以以非常低的延迟处理实时流。所有的推文都被排序,因为他们收到没有任何延迟,并使用bolts对推文进行计算。编程模型很容易建立在自己的拓扑上。拓扑图的执行情况可以用有向图表示。尽管Apache是在Clojure上构建的,但拓扑是用Java创建的,因此可以用多种语言进行编程。在这个实验中,确定了一些未来发展的领域。

  • 安装和配置Apache Storm并不容易。没有直接安装程序可用于安装先决条件和配置工具。所有步骤都必须手动执行,没有全面的指导。所以对于未来相关工作,其中之一就是发布一个更友好的安装和配置版本从而提升开发者的体验。
  • 尽管Apache Spark提供了一些关键性能指标(KPI)来衡量性能和可靠性,但对用户来说还不够。也没有报告模块。在未来的版本中,报告模块的添加将使该工具成为主要的实时处理开源工具。

参考文献 References

[1] J. M. a. M. C. Tim McGuire, August 2012. [Online]. Available:
http://iveybusinessjournal.com/topics/strategy/why-big-data-is-the-new-
competitive-advantage#.VKv0wSuUe9E.
[2] “Big data: The next frontier for innovation, competition, and
productivity,” McKinsey Global Institute, 2011.
[3] B. Perroud, “A hybrid approach to enabling real-time queries to end-
users,” Software Developer’s Journal, 2013.
[4] K. Wähner, 10 Sep 2014. [Online]. Available:
http://www.infoq.com/articles/stream-processing-hadoop.
[5] “Apache HBase,” Apache, 22 December 2014. [Online]. Available:
http://hbase.apache.org/. [Accessed 06 January 2015].
[6] 1 Dec 2014. [Online]. Available: http://hadoop.apache.org/ .
[7] 4 Dec 2014. [Online]. Available: https://spark.apache.org/.
[8] 4 Dec 2014. [Online]. Available: http://incubator.apache.org/s4/.
[9] J. S. Damji, “Discover HDP 2.1: Apache Storm for Stream Data
Processing in Hadoop,” 23 June 2014. [Online]. Available:
http://hortonworks.com/blog/discover-hdp-2-1-apache-storm-stream-
data-processing-hadoop/. [Accessed 06 January 2015].
[10] “Apache Storm,” Hortonworks, [Online]. Available:
http://hortonworks.com/hadoop/storm/. [Accessed 06 January 2015].
[11] “Apache Storm,” Apache Software Foundation, 2014. [Online].
Available: https://storm.apache.org/about/integrates.html. [Accessed 01
January 2015].

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值