`
m635674608
  • 浏览: 4928515 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Storm, Spark, Hadoop

 
阅读更多
本帖最后由 oracle_cj 于 2014-2-19 21:12 编辑

1、大数据核心是什么?

“大数据”作为时下最火热的IT行业的词汇,随之而来的数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。

大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。

(在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据的方法)大数据的4V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。

从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。

它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。

大数据的4个“V”,或者说特点有四个层面:第一,数据体量巨大。从TB级别,跃升到PB级别;第二,数据类型繁多,视频、图片、地理位置信息等等。第三,价值密度低,商业价值高。

以视频为例,连续不间断监控过程中,可能有用的数据仅仅有一两秒。第四,处理速度快。1秒定律。最后这一点也是和传统的数据挖掘技术有着本质的不同。业界将其归纳为4个“V”——Volume(大量)、Velocity(高速)、Variety(多样)、Veracity(精确)。

大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘电网、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。

物联网、云计算、移动互联网、车联网、手机、平板电脑、PC以及遍布地球各个角落的各种各样的传感器,无一不是数据来源或者承载的方式。



大数据技术的核心:不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。

换言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。

从某种程度上说,大数据是数据分析的前沿技术。简言之,从各种各样类型的数据中,快速获得有价值信息的能力。


2、Storm, Spark, Hadoop三个大数据处理工具谁将成为主流?

一、 比较

Storm: 分布式实时计算,强调实时性,常用于实时性要求较高的地方

Hadoop:分布式批处理计算,强调批处理,常用于数据挖掘、分析

Spark:是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速, Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms,Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟

二、 优点

1. 简单编程

在大数据处理方面相信大家对hadoop已经耳熟能详,基于GoogleMap/Reduce来实现的Hadoop为开发者提供了map、reduce原语,使并行批处理程序变得非常地简单和优美。同样,Storm也为大数据的实时计算提供了一些简单优美的原语,这大大降低了开发并行实时处理的任务的复杂性,帮助你快速、高效的开发应用。

Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map,filter, flatMap,sample, groupByKey, reduceByKey, union, join, cogroup,mapValues, sort,partionBy等多种操作类型,他们把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions。这些多种多样的数据集操作类型,给上层应用者提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的Data Shuffle一种模式。用户可以命名,物化,控制中间结果的分区等。可以说编程模型比Hadoop更灵活.

2. 多语言支持

除了用java实现spout和bolt,你还可以使用任何你熟悉的编程语言来完成这项工作,这一切得益于Storm所谓的多语言协议。多语言协议是Storm内部的一种特殊协议,允许spout或者bolt使用标准输入和标准输出来进行消息传递,传递的消息为单行文本或者是json编码的多行。

Storm支持多语言编程主要是通过ShellBolt,ShellSpout和ShellProcess这些类来实现的,这些类都实现了IBolt 和 ISpout接口,以及让shell通过java的ProcessBuilder类来执行脚本或者程序的协议。

可以看到,采用这种方式,每个tuple在处理的时候都需要进行json的编解码,因此在吞吐量上会有较大影响

3. 支持水平扩展

在Storm集群中真正运行topology的主要有三个实体:工作进程、线程和任务。Storm集群中的每台机器上都可以运行多个工作进程,每个工作进程又可创建多个线程,每个线程可以执行多个任务,任务是真正进行数据处理的实体,我们开发的spout、bolt就是作为一个或者多个任务的方式执行的。

因此,计算任务在多个线程、进程和服务器之间并行进行,支持灵活的水平扩展。

4. 容错性强

如果在消息处理过程中出了一些异常,Storm会重新安排这个出问题的处理单元。Storm保证一个处理单元永远运行(除非你显式杀掉这个处理单元)。

5. 可靠的消息保证

Storm可以保证spout发出的每条消息都能被“完全处理”,这也是直接区别于其他实时系统的地方,如S4。

6. 快速的消息处理

用ZeroMQ作为底层消息队列, 保证消息能快速被处理

7. 本地模式,支持快速编程测试

Storm有一种“本地模式”,也就是在进程中模拟一个Storm集群的所有功能,以本地模式运行topology跟在集群上运行topology类似,这对于我们开发和测试来说非常有用。

三,融合

  Spark和Hadoop的融合,从Hadoop 0.23把MapReduce做成了库,看出Hadoop的目标是要支持包括MapReduce在内的更多的并行计算模型,比如MPI,Spark等。毕竟现在Hadoop的单节点CPU利用率并不高,那么假如这种迭代密集型运算是和现有平台的互补。同时,这对资源调度系统就提出了更高的要求。有关资源调度方面,UC Berkeley貌似也在做一个Mesos的东西,还用了Linux container,统一调度Hadoop和其他应用模型。


从上述而言,很难说明谁将成为主流,相反,技术之间实现强有力的融合才是王道,取长补短,优势互补,从近几年的大数据发展来看,大家最熟悉的应该非Hadoop莫属了。


3、你觉得今年大数据的发展趋势如何?

1.大数据从“概念”走向“价值”

从2012年开始,大数据就成为一个社会各界都高度关注的热词,很多应用领域都在讲大数据的概念,比如金融大数据、安全大数据、制造业大数据、物流大数据等等。与2012年不同的是,在2014年及以后,有更多的领域关注大数据,而且一些领域已经开始实实在在地落实大数据的价值,开始探索大数据驱动的业务模式。

2.安全与隐私

随着大数据,云计算的崛起,信息的大爆炸,大数据安全和隐私越来越重。

相对于传统的数据模式,大数据更容易成为网络攻击的目标,大数据分析技术也更容易被黑客利用。如今的网络和数字化生活使得犯罪分子、网络黑客以及并无恶意的大数据服务提供商可轻易获得用户的有关信息,而且犯罪分子的犯罪手段也变得更多、更高明且更加不易被追踪和防范。同时,用户的隐私会越来越多地融入到各种大数据中,而各种数据来源之间的无缝对接以及越来越精准的数据挖掘技术,使得大数据拥有者能够掌控越来越多的用户和越来越丰富的信息。在挖掘这些数据价值的同时,隐私泄漏存在巨大风险。由于系统故障、黑客入侵、内部泄密等原因,数据泄漏随时可能发生,从而造成难以预估的损失。因此,大数据时代,因数据而产生的安全保障问题、隐私问题非常严峻。目前尚没有较好的解决办法。今后,在安全和隐私方面的投资会增大,而有偿的隐私保护服务有可能会被大众所接受。

3.战略发展

大数据产业或将成为战略性产业,各个国家都将推动大数据的战略性产业,将利用大数据来提高国家的经济决策和社会服务能力,保障国家安全;大企业大数据选项预示着大企业将成为大数据技术研发与应用最为活跃的群体;政府大数据选项则预示着一些拥有大数据的政府部门将纷纷利用积累的数据,采用大数据技术进行分析,从而产生突出的社会经济效益。从产业拓展的角度看,大数据是继云计算、物联网之后的一个

巨大的新产业领域。而且其所蕴含的机会和挑战将大大多于云计算和物联网。大数据产业(数据产业)具有很强的蜂箱效应,除了产业自身的经济蕴藏量之外,还将大大撬动其他产业的跨越升级。




 
 
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics