storm 简介

 一、storm中一些定义

       1.Topologies

      Storm topology类似于一个MapReduce job. 唯一不同的是MapReduce任务会结束而 topology一直运行。一个topology是由spouts,bolts组成的流分组图。

       2.Streams

    Stream由无序的tuples组成。tuple可以包含integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays,也可以自己定义序列化使用自己定义的类型。

      Streams are defined with a schema that names the fields in the stream's tuples. By default, tuples can contain integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays. You can also define your own serializers so that custom types can be used natively within tuples

       3.Spouts

       spouts是topology的源头, 一般spouts 会从外部读取tuples到topology.

      4.bolts

        所有的处理工作都是在bolts中完成的。Bolts可以做filtering, functions, aggregations, joins, talking to databases等等。

        定义一个bolt时候,需要从另一个组件中订阅流量。declarer.shuffleGrouping("1") 从 component "1"订阅流量。

      5.Stream groupings

      定义一个topology通常会为每个bolt指定stream输入。stream分组就是将stream分配给bolts。
      6.Tasks
     每个spout或bolt在cluster中执行很多任务。 每个任务对应一个执行线程,Stream groupings定义如何将元组从一组任务发送到另一组任务。
      7.works
      Topologies execute across one or more worker processes. Each worker process is a physical JVM and executes a subset of all the tasks for the topology. 
 二、storm配置对应的topology

 

 二、参考文献

http://storm.apache.org/releases/2.0.0-SNAPSHOT/Concepts.html

http://storm.apache.org/releases/2.0.0-SNAPSHOT/Understanding-the-parallelism-of-a-Storm-topology.html

posted on 2017-03-31 15:42  ThinkFar  阅读(199)  评论(0编辑  收藏  举报