1.Storm-简介

Storm是Twitter开源的分布式实时大数据处理框架,最早开源于github,从0.9.1版本之后,归于Apache社区,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。

 

实现一个实时计算系统

低延迟:都说了是实时计算系统了,延迟是一定要低的。

高性能:可以用几台普通的服务器搭建,结余成本。

分布式:系统都是为应用场景而生的,如果你的应用场景、你的数据和计算单机就能搞定,那么不用考虑这些复杂的问题了。我们所说的是单机搞不定的情况。

可扩展:伴随着业务的发展,我们的数据量、计算量可能会越来越大,所以希望这个系统是可扩展的。

容错:这是分布式系统中通用问题。一个节点挂了不能影响我的应用。storm 可以轻松做到在节点挂了的时候实现任务转移,并且在节点重启的时候,也就是重新投入生产环境时,自动平衡任务。

可靠性:可靠的消息处理。storm 保证没个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。

快速:系统的设计保证了消息能得到快速的处理,使用 ZeroMQ 作为其底层消息队列。

本地模式:storm 有一个“本地模式” ,可以在处理过程中完全模拟 storm 集群,这让你可以快速进行开发和单元测试。

 

1.1 Storm 体系结构

  • Nimbus负责在集群里面发送代码,分配工作给机器,并且监控状态。全局只有一个。
  • Supervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程Worker。每一个要运行Storm的机器上都要部署一个,并且,按照机器的配置设定上面分配的槽位数。
  • Zookeeper是Storm重点依赖的外部资源。Nimbus和Supervisor甚至实际运行的Worker都是把心跳保存在Zookeeper上的。Nimbus也是根据Zookeerper上的心跳和任务运行状况,进行调度和任务分配的。
  • Storm提交运行的程序称为Topology。
  • Topology处理的最小的消息单位是一个Tuple,也就是一个任意对象的数组。
  • Topology由Spout和Bolt构成。Spout是发出Tuple的结点。Bolt可以随意订阅某个Spout或者Bolt发出的Tuple。Spout和Bolt都统称为component。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值