一、storm vs hadoop

基本上Hadoop和Storm框架用于分析大数据。两者互补,在某些方面有所不同。Apache Storm执行除持久性之外的所有操作,而Hadoop在所有方面都很好,但滞后于实时计算。下表比较了Storm和Hadoop的属性。

二、storm术语

spout            //水龙头,stream的源头,通常接受twitter,kafka的数据,传递数据给bolt,可以多实例(多线程)

bolt              //转接头,是逻辑处理单元,filter,agg,join。。。交给下一个bolt,生成输出,可以多实例(多线程)

tuple            //元祖,是storm主要的数据结构,是有序元素列表,逗号分隔值

stream         //一系列tuple

topoloy        //spout产生数据,交给bolt处理,依次下传。top始终是运行态

task             //spout和每个bolt执行的程序就是task

worker         //工作进程。top以分布式方式运行,storm会在worker集合上均匀分发task。worker节点的角色是监听job,启动或停止新job

三、架构

nimbus(master)              //运行top。收集task运行的信息,分发给supervisor。

                                       //负责分发数据,给worker指定task,监控故障

slave(supervisor)           //可以一个或多个work进程,类似于yarn的NM.接受nimbus的指令,

                                       //接受nimbus的指定,管理多个worker进程以及指派task给worker

         work  process         //自身不执行task,而是创建executor,并让他执行task

                                        //每个worker进程有多个executor.

                thread(executor)  //executor可执行多task,但是都必须同属于一个bolt(spout)

                        task           //任务处理

zk                                   //协调