跟我一起云计算(1) storm

概述

最近要做一个实时分析的项目,所以需要深入一下storm。

为什么storm

综合下来,有以下几点:

1. 生逢其时

MapReduce 计算模型打开了分布式计算的另一扇大门,极大的降低了实现分布式计算的门槛。有了MapReduce架构的支持,开发者只需要把注意力集中在如何使用 MapReduce的语义来解决具体的业务逻辑,而不用头疼诸如容错,可扩展性,可靠性等一系列硬骨头。一时间,人们拿着MapReduce这把榔头去敲 各种各样的钉子,自然而然的也试图用MapReduce计算模型来解决流处理想要解决的问题。各种失败的尝试之后,人们意识到,改良MapReduce并 不能使之适应于流处理的场景,必须发展出全新的架构来完成这一任务(MapReduce不适合做流处理的原因Yahoo!在其S4的介绍论文里面有比较详 细的阐述,而UCBerkeley的SparkStreaming项目现在正在尝试挑战这一结论,感兴趣的同志请自行查看)。另一方面,人们对传统的 CEP解决方案心存疑虑,认为其非分布式的架构可扩展性不够,无法scaleout来满足海量的数据处理要求。这时候,Yahoo!的S4以及 Twitter的Storm恰到好处的挠到了人们的痒处。

2. 可扩展性

更加明确的说,是scaleout的能力。所谓Scale out (http://en.wikipedia.org/wiki/Scalability), 简单来说就是当一个集群的处理能力不够用的时候,只要往里面再追加一些新的节点,计算有能力迁移到这些新的节点来满足需要。可能的情况下,选择 Scaleout 而非Scale up,这个观念已经深入人心。一般来说,实现Scaleout的关键是Shared nothing architecture,即计算所需要的各种状态都是自满足的,不存在对特定节点强依赖,这样,计算就可以很容易的在节点间迁移,整个系统计算能力不够 用的时候,加入新的节点就可以了。Storm的计算模型本身是Scaleout友好的,Topology 对应的Spout和Bolt并不需要和特定节点绑定,可以很容易的分布在多个节点上。此外,Storm还提供了一个非常强大的命令 (rebalance),可以动态调整特定Topology中各组成元素(Spout/Bolt)的数量以及其和实际计算节点的对应关系。

3. 系统可靠性

Storm 这个分布式流计算框架是建立在Zookeeper的基础上的,大量系统运行状态的元信息都序列化在Zookeeper中。这样,当某一个节点出错时,对应 的关键状态信息并不会丢失,换言之Zookeeper的高可用保证了Storm的高可用。文档(https://github.com /nathanmarz/storm/wiki/Fault-tolerance)讨论了Storm各个子系统的错误冗余行为,可以进一步参考。

4. 计算的可靠性

分 布式计算涉及到多节点/进程之间的通信和依赖,正确的维护所有参与者的状态和依赖关系,是一件非常有挑战性的任务。Storm实现了一整套机制,确保消息 会被完整处理(https://github.com/nathanmarz/storm/wiki/Guaranteeing-message- processing)。 此外,通过TransactionalTopology(https://github.com/nathanmarz/storm/wiki /Transactional-topologies) ,Storm可以保证每个tuple“被且仅被处理一次”。

5. Opensource

这个就不用多说了,开源使得Storm社区及其活跃,到本文写作的时候,Storm已经发展到了0.81,Storm的使用者已经有了一个长长的名单(https://github.com/nathanmarz/storm/wiki/Powered-By),其中不乏比如淘宝,支付宝,Twitter,Groupon这种互联网巨头。

6. Clojure基础上的实现

Storm的核心代码是Clojure和Java。Clojure是一门JVM基础上的函数式编程语言(http://clojure.org/), 是支持STM(SoftwareTransactional Memory)的少数几门语言之一。Clojure推出以来,得到了广泛关注,人们普遍认为,其函数式编程所具有的各种特性能在分布式环境中大有用武之 地, 而Storm则给出了一个很好的实例。从另一个角度来说,Storm也能大大的推动Clojure的普及。

总言之,时势造英雄,Storm在正确的时间出现在了正确的地点,而且刚刚好做了正确的事情,想不红都没有道理。

高层架构

从高来看storm的架构:

云计算(1) storm-云计算 storm">

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/

时间: 2024-12-31 06:14:59

跟我一起云计算(1) storm的相关文章

跟我一起云计算(1)——storm

概述 最近要做一个实时分析的项目,所以需要深入一下storm. 为什么storm 综合下来,有以下几点: 1. 生逢其时 MapReduce 计算模型打开了分布式计算的另一扇大门,极大的降低了实现分布式计算的门槛.有了MapReduce架构的支持,开发者只需要把注意力集中在如何使用 MapReduce的语义来解决具体的业务逻辑,而不用头疼诸如容错,可扩展性,可靠性等一系列硬骨头.一时间,人们拿着MapReduce这把榔头去敲 各种各样的钉子,自然而然的也试图用MapReduce计算模型来解决流处

Storm构建分布式实时处理应用初探(转)

最近利用闲暇时间,又重新研读了一下Storm.认真对比了一下Hadoop,前者更擅长的是,实时流式数据处理,后者更擅长的是基于HDFS,通过MapReduce方式的离线数据分析计算.对于Hadoop,本身不擅长实时的数据分析处理.两者的共同点都是分布式的架构,而且,都类似有主/从关系的概念.本文中我就不具体阐述Strom集群和Zookeeper集群如何部署的问题,我想通过一个实际的案例切入,分析一下如何利用Storm,完成实时分析处理数据的. Storm本身是Apache托管的开源的分布式实时计

说说这些年做的云计算和大数据项目

         入行十几年了,做了不少分布计算.并行计算.内存计算.海量数据处理的项目,按照现在的分类,这些都属于云计算/大数据范畴.今天说说我做过的其中三个项目,只三个.          第 一个是我们接到的视频分享网站的视频转码的订单,网站名字就不说了,有替人宣传嫌疑.他们情况是这样,视频网站的内容用MP4格式在网页上播放,但是上传 的格式多种多样,我们必须把这些视频统一转换成MP4格式,视频转码的工作想必大家都在自己的电脑上试过,通常一个100M左右的视频转码需要20分钟以 上(CPU

云计算专家访谈:百度系统架构部技术总监 吕厚昌

中介交易 SEO诊断 淘宝客 云主机 技术大厅 记者:您能先简单的跟我们介绍一下您这个部门在百度中是一个什么样的角色吗? 吕:百度的数据团队属于基础架构部.顾名思义,这个部门是做数据的.百度对数据的重视在业界里面很突出,因为百度一直讲究让数据说话.用数据支持决策,已经是公司文化的一部分.这个团队成立的最主要的目标是要从技术上把数据的应用推动到更高的层次.百度的数据量很大,所遇到的不少难题业界也清楚.有时,需要做复杂的数据挖掘,但有时又会回到原点改善数据收集.数据收集做的不细做不出好东西.这个团队

浅谈Storm流式处理框架(转)

       Hadoop的高吞吐,海量数据处理的能力使得人们可以方便地处理海量数据.但是,Hadoop的缺点也和它的优点同样鲜明--延迟大,响应缓慢,运维复杂.       有需求也就有创造,在Hadoop基本奠定了大数据霸主地位的时候,很多的开源项目都是以弥补Hadoop的实时性为目标而被创造出来.而在这个节骨眼上Storm横空出世了.       Storm带着流式计算的标签华丽丽滴出场了,看看它的一些卖点: 分布式系统:可横向拓展,现在的项目不带个分布式特性都不好意思开源. 运维简单:S

云计算的时代,出现分布式存储和分布式数据库的解决方案

数据存储主要有两种方式:Database和FileSystem,后面发展出了Object-oriented storage,但是总的来看就是存储结构化和非结构化数据两种. DB开始是为了结构化数据存储和共享而服务的.FileSystem存储和共享的是大文件,非结构的数据,像图片,文档,影音等.随着数据量的增大,单机存储已经不能满足结构化和非结构化数据的需求,那么在云计算的时代,就出现了分布式存储和分布式数据库的解决方案. 1,File System, Object-oriented storag

中交兴路系统架构师杨晓明:Hadoop+Storm+ HBase…,打造交通行业创新型服务

出租车.公交车.客运班车.重型货车--,营运车辆在城市交通中占据着重要的地位,与人们生活乃至社会发展有着重要关系.构建信息化平台,对营运车辆进行监控与管理,规范车辆行为,建立良好营运秩序,已成为智能交通建设中不可或取的一部分. "交通部全国货运监管服务平台"是北京中交兴路信息科技有限公司(以下简称"中交兴路")所开发的重要产品之一,致力于对全国货运车辆进行监控.管理及信息交互,在充分运营的情况下,每秒将产生数十万的平均访问量乃至每日上百TB的数据.正是凭借常年在交通

G7:如何用云计算链接30万车辆--EMR&Hbase 在物联网领域的实践及解决方案

G7和阿里云,一个是国内最专业的物流数据服务公司,一个是全球3A云计算服务商.他们的强强联合,会创造出怎样的火花? 2015年,随着业务的发展,用户超过三万家,车辆超过30万的G7数据量呈几何倍数地增加. 如何用数据连接每一辆卡车.货主.运力主和司机,提升运输服务效率?G7一番慎重调研后,决定放弃自建机房,而是采用云计算服务快速构建系统,响应业务变化. 在对比了国内比较成熟的云服务后,阿里云的可靠性,安全性,低成本给G7留下比较好的印象,再加上阿里云提供了很多云服务,比如数据存储,消息中间件,大

云计算已在大数据分析中发挥重要作用

大数据并不是实时vs.批处理的问题.正如Ovum的分析师Tony Baer和其他一些分析师所指出的那样,这不是一个非此即彼的问题.鉴于现如今的企业用户在制定一套成功的大数据战略方面有着广泛的选择和大量的工作负载,上述分析师的论断也并不奇怪或有什么值得争议的. 更具争议性的话题是,虽然也许并不令人感到惊讶,是从被需要用以获得大多数大数据的基础设施中获得其性质.例如,AWS(亚马逊Web服务)的数据科学主管马特·伍德警告说,虽然"分析是会令人上瘾的,但如果你企业的基础设施跟不上的话,这种积极的上瘾会