http://storm.apache.org/
wget https://github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
cd /home/storm/opt
unzip storm-0.8.1.zip
cd /home/storm/opt/storm-0.8.1/conf/
vi storm.yaml
启动:
bin/storm nimbus >/dev/null 2>&1 &
bin/storm supervisor >/dev/null 2>&1 &
bin/storm ui >/dev/null 2>&1 &
storm集群信息你可以登录storm ui查看
http://xxx:6765/index.html
我们的storm集群由三个节点组成:host1,host2,host3
1.fieldsGrouping field值相同的属性会在一个bolt中执行,其它会随机分配bolt执行
这样主节点只需要对结果做统计就可以了,如果不这么做,就还需要再做一次统计,增加了节点工作量
2.并发执行,共享变量:属性用private transient AtomicLong count ;一般这种情况比较少
3.spout,bolt之间传值tuple:array 先序列化成json串数组,取的时候先反序列化
4.prepare方法启动的时候在一个JVM里只会执行一次,可以把spring,以及数据库连接的一些方法在这里执行
5.不用uuid,用一个有意义的id,这样如果记录重复处理,就可以判断是否重复
6.IBasicBolt比IRichBolt多了realiability功能
route add x/16 x
route add y/16 y
Storm的送达保证机制-----恰好送达一次
1.送达保证机制 至少送达一次
2.事物拓补 保证不会出现多次送达,以及状态持久化