当前位置:   article > 正文

学习总结十五:分布式实时计算系统storm简介_分布式计算storm环境搭建小结

分布式计算storm环境搭建小结

        storm翻译成中文是暴风雨的意思,意即来得迅速,从作者起名的角度来看,这个框架是用来处理一些实时性响应方面的数据。j是Apache旗下一些免费的开源产品。从官方文档看到storm是一个分布式实时计算系统.非常简单,支持多种开发语言。

        storm应用多种场景:实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。storm处理速度非常快,平均每个节点每1秒钟可以处理百万级。强大的伸缩性和容错性,何证你的数据被处理,且容易设置和管理。Stormg整合了队列和数据库技术。 

       在大数据处理上,大家可能对hadoop中的mapreduce比较熟悉,在hadoop中用mapreduce来清洗数据。hadoop在分布式批量处理数据方面不存在任何问题,但有一个缺点,就是高延迟,在对实时性要求很高的电商平台上并不适用。storm的出现正好解决了低延迟的需求。

      我们来看一下storm的适用场景。
1.流数据处理。Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。
2.分布式rpc。由于storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式rpc框架来使用。当然,其实我们的搜索引擎本身也是一个分布式rpc系统

    下面我们比较mapreduce和storm对应的角色


  1. Nimbus:负责资源分配和任务调度,相当于mapreduce中的jobtracker的角色。
  2. Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程,相当于mapreduce中的tasktracker角色。
  3. Worker:运行具体处理组件逻辑的进程。
  4. Task:worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task
    可能会共享一个物理线程,该线程称为executor。 
    storm是有一个主从结构,主节点为master,从节点是worker。图描述了以上几个角色之间的关系


  1. Topology:storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。
  2. Spout:在一个topology中产生源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。Spout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用此函数,用户只要在其中生成源数据即可。
  3. Bolt:在一个topology中接受数据然后执行处理的组件。Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。Bolt是一个被动的角色,其接口中有个execute(Tuple input)函数,在接受到消息后会调用此函数,用户可以在其中执行自己想要的操作。
  4. Tuple:一次消息传递的基本单元。本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个value list.
  5. Stream:源源不断传递的tuple就组成了stream。

        6. stream grouping:即消息的partition方法。Storm中提供若干种实用的grouping方式,包括shuffle, fields hash, all, global, none, direct和localOrShuffle等。

本文参考文献:

     网上一些资料 http://www.searchtb.com/2012/09/introduction-to-storm.html
     storm官方文档 http://storm.incubator.apache.org/


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/502481
推荐阅读
相关标签
  

闽ICP备14008679号