Storm简介

一、Storm简介
Storm是Twitter开源的一个分布式的实时计算系统,用于数据的实时分析,持续计算等

应用场景:1、实时推荐系统,比如我们在某电商网站去买东西,我们会在网页旁边看到我们自己所需要的商品相关的系列产品。而hadoop只是做离线数据分析,无法做到实时分析计算。
2、股票也是可以利用Storm 的实时计算特点来实现。


二、Storm体系结构



在Storm集群中,有两类节点:主节点 master node 和工作节点 worker nodes 。主节点运行着一个叫做 Nimbus 的守护进程。这个守护进程负责在集群中分发代码,为工作节点分配任务,并监控故障。Supervisor守护进程作为拓扑的一部分运行在工作节点上。一个Storm拓扑结构在不同的机器上运行着众多的工作节点。
Nimbus并不是真正干活的'人',而是通过ZK去发布任务,Supervisor从ZK中监听到任务,并且拿到任务之后采取真正,启动多个worker干活,Supervisor最后会将处理成功与否的高数主节点(Nimbus)
Nimbus主节点:
主节点通常运行一个后台程序--Nimbus,用户响应分布集群中的节点,分配任务和检测故障。Supervisor工作节点:
工作节点同样会运行一个后台程序--Supervisor,用于收听工作指派。要求运行工作进程。每个人节点都是topology中的一个子集的实现。而Nimbus和Supervisor之间的协调则通过ZK系统或者集群
Zookeeper
zookeeper是完成Supervisor和Nimbus之间的协调服务。而应用程序实现实时的逻辑则被封装到Strom中的‘topology’,topology是一组由spout(数据源)和bolts(数据操作)通过Stream Groupings进行连接的图。
  • spout 龙卷,读取原始数据为bolt提供数据
  • bolt 雷电,从spout或其它bolt接收数据,并处理数据,处理结果可作为其它bolt的数据源或最终结果

下面是一个Topology内部Spout和Bolt之间的数据流关系:
想像播音员读的字幕作为你的数据输入流。你可以用一个 spout 读取一个文件(或者socket,通过HTTP,或者别的方法)。文本行被 spout 传给一个 bolt ,再被bolt按单词切割。单词流又被传给另一个 bolt ,在这里每个单词与一张政治人名列表比较。每遇到一个匹配的名字,第二个 bolt 为这个名字在数据库的计数加1


Storm的特性
  • 简化编程    如果你曾试着从零开始实现实时处理,你应该明白这是一件多么痛苦的事情。使用Storm,复杂性被大大降低了。
  • 高性能 可以使用几台普通的服务器搭建环境,结余成本
  • 分布式 Strom非常适用于分布式场景。
  • 容错         Storm集群会关注工作节点状态,如果宕机了必要的时候会重新分配任务。
  • 可扩展    所有你需要为扩展集群所做的工作就是增加机器。Storm会在新机器就绪时向它们分配任务。
  • 可靠的    所有消息都可保证至少处理一次。如果出错了,消息可能处理不只一次,不过你永远不会丢失消息。
  • 快速        速度是驱动Storm设计的一个关键因素,保证消息能够得到快速处理,使用ZeroMQ作为其底层消息队列
  • 本地模式 Storm有一个‘本地模式’, 可以在处理过程中完全模拟Storm集群。  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值