码迷,mamicode.com
首页 > 其他好文 > 详细

Storm简介

时间:2018-06-13 11:30:10      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:学习   开源   一个   ack   stream   处理   问题   服务器   数据流   

 

一、Storm介绍

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

  ①官网地址:http://storm-project.net

  ②源码地址:https://github.com/nathanmarz/storm

2、实时计算需要解决一些什么问题

  ①最显而易见的就是实时推荐系统,比如我们在淘宝等电商购物网站去买东西,我们会在网页旁边或者底端看到与自己所需要商品相关的系列产品。这就是使用类似storn实时计算去做的,我们非常熟悉的Hadoop只是做离线数据分析,无法做到实时分析计算、

  ②比如车流量实时的计算,每天我们北京市的交通情况非常的拥挤,我们可以利用Storm为我们实时计算每一个路段的拥挤程度等相关路况信息。

  ③再比如我们非常熟悉的股票,那么股票系统也是一种实时计算的机制,利用Storm完全可以实现

3、实现一个实时计算系统

  ①低延迟:

  ②高性能:可以使用几台普通的服务器建立环境,结余成本

  ③分布式:Storm非常适合于分布式场景,大数据的实时计算;你的数据和计算单机就能搞定,就不用考虑这些复杂的问题,

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

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

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

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

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

 

二、Storm体系结构

  ①Hadoop和Storm对比

    技术分享图片

  ②Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的数据流。Storm有很多的应用场景:如实时分析,在线机器学习,持续计算,分布式RPC,ETL等,Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个节点每秒可以处理数以百万计的消息)。Stopm的部署和运维都很便捷,更重要的是可以使用任意编程语言来开发应用。

  ③Storm架构结构图

  技术分享图片

 

  ①Nimbus主节点:主节点通常运行一个后台程序---------Nimbus,用于响应分布在集群中的节点,分配任务和监测故障,这个很类似于Hadoop的Job Tracker。

  ②Supervisor工作节点:工作节点同样运行一个后台程序---------Supervisor,用于收听工作指派基于要求运行工作过程,每个工作节点都是topology中一个子集的实现,而Nimbus和Supervisor之间的协调则通过Zookeeper系统集群。

  ③Zookeeper:zookeeper是完成Supervisor和Nimbus之间协调的服务,而应用程序实现实时逻辑则被封装到Storm中的“topology”。topology则是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings 进行连接的图,下面对出现的属于进行更深刻的解析。

  ④Topology:Storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。一个topology是spouts和bolts组成的图,通过stream groupings将图中的Spouts和bolts连接起来。

  技术分享图片

 

Storm简介

标签:学习   开源   一个   ack   stream   处理   问题   服务器   数据流   

原文地址:https://www.cnblogs.com/shmilyToHu/p/9175985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!