storm 文档(2)----基本原理

storm 文档(2)----基本原理

源地址:http://storm.apache.org/documentation/Rationale.html

 

过去十年间,很多数据处理解决方案不停涌现。 MapReduce、Hadoop以及相关技术使得存储和处理数据在规模上是以前不可想象的。不幸的是, 这些数据处理技术没有实时系统, 同时上述技术也没打算这样做。 没有办法使Hadoop编程实时系统; 实时数据处理与批处理有一系列不同的基本要求。

 

然而,大规模实时数据处理正成为商业上越来越迫切的需求。“实时Hadoop”已经称为数据处理生态圈中最大缺陷。

 

Storm填补了这个缺陷。

 

在Storm出现之前,你一般需要手动搭建能够进行队列处理和worker的网络,已进行实时处理。Workers 将处理队列输出的消息,更新数据库,发送新消息给其他队列已进行更深层次的处理。不幸的是, 这种部署方式具有严格的限制:

1、单调的处理:你需要花费大量的时间去配置向哪里发送消息,在哪里部署workers、在哪里部署队列。你关心的实时处理逻辑与你的代码只有很小部分相关。

2、易错的:很少容错。 你需要负责保证每一个worker正常工作以及队列化处理。

3、很难伸缩:当单个worker或者队列的消息吞吐量太大时,你需要划分数据如何分布;你需要重新配置其他workers,以便知道发送消息的新目的位置。这都提高了数据迁移以及新数据片的失败比例。

 

尽管队列和workers并行机制打破了大规模消息的限制,但是消息处理对实时运算来说是清晰的基本并行机制。问题在于: 如何保证不丢失数据、如何扩大数据量、如何极其简单的使用和操作。

 

Storm实现了这些目标。

 

Why Storm is important?

Storm包含了一系列实时运算的原语。就像MapReduce是怎样极大的方便了并行批处理写过程,Storm's原语也极大的方便了并行实时运算的写过程。

 

Storm关键特征是:

         1、极其广泛的用例:Storm可以用来:处理消息和更新数据库(流式处理);连续的申请数据流;将结果流式的送入客户端(连续运算);并行处理强烈的请求,例如运行中的搜索请求;等等。Storm's小规模的原语满足了惊人的用例。

         2、可伸缩的:Storm每秒可以扩增大量的消息。 为了扩增topology,你需要做的就是增加机器并提高topology的并行设置。作为Storm's可伸缩的例子,Storm最初用例的一个就是:10个节点的集群每秒可以处理1,000,000条消息,其中还包含每秒钟数百个数据库调用。Storm使用Zookeeper进行集群合作可以使集群扩展到粳稻集群尺寸。

         3、保证无数据丢失:实时系统必须具有很强的保证---数据必须成功处理。丢失数据的系统用处很有限。Storm保证:每条消息都将处理,这与其他系统的直接对比---例如S4。

         4、很强的鲁棒性:不像类似于Hadoop的系统,难于管理简直是臭名昭著,Storm集群就只是工作。这是Storm项目潜在的目标:使用户尽可能无痛的管理storm集群。

         5、容错性:如果运算中出现错误,Storm可以按照需要恢复tasks。Storm保证运算可以永久运行(知道你杀掉运算)。

         6、语言无关的编程:鲁棒性和可伸缩性实时处理不应该限制在单一的平台。Storm topologies以及处理组件可以使用任何语言定义,使得Storm可以被任何人使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值