storm+kafka测试案例

一.storm本地测试

  1. 创建spout 继承 BaseRichSpout
  2. 创建bolt 继承 BaseBasicBolt
  3. 创建topology 使用TopologyBuilder createTopology()创建
  4. 启动topology 使用 LocalCluster submitTopology发布

二.本地storm+kafka

  1. 引入storm kafka依赖
  2. 创建KafkaSpout
    注意kafkaSpout是通过 spoutConfig创建 需指定spoutConfig的scheme (自己写一个实现scheme接口 指定key value的值)
  3. 创建bolt
  4. 创建topology
  5. 启动topology (如果在集群启动需要 StormSubmitter.submitTopology(args[0],conf,builder.createTopology())?

三.storm集群搭建 在storm集群上发布topology

  1. 启动zookeeper bin/zkServer.sh start
  2. 配置storm.yaml 复制到集群各个节点
  3. 在节点1 启动 (启动)
    storm nimbus &
    storm ui &
  4. 在节点2 启动
    storm nimbus &
    storm supervisor &
  5. 在节点3启动
    storm supervisor &
  6. 在节点2部署topology(将topology项目打成jar包)
    ./storm jar storm-test.jar com.example.kafkademo.mystorm.MyTopology(程序入口主类) mytopology(拓扑名称)
  7. 在192.168.1.106:8080 查看已经发布的 topology , 也可以在 bin/zkCli.sh 中查看 storm节点

四.storm相关知识

  1. storm结构
    (1). nimbus调度卫星 supervisors执行者
    (2). supervisors 一个supervisor对应一台服务器,对应多个workers(JVM)(一个worker一个进程,一个topology),
    (3). 一个worker可以对应多个executor(一个executor对应一个进程),
    (4). 一个executor可以对应多个task, 如下图:
    在这里插入图片描述
  2. spout中的nextTupple()
    该方法为spout线程死循环执行,如果collector.emit()未执行成功默认1s执行1000次
    如果执行成功1s轻松百万+
  3. shuffleGrouping(“spoutid”) fieldGrouping(new Field(“value”))通过spoutid 或哲哲通过filed进行分组
  4. storm整合springboot 将springboot的启动类 放在 spout的prepare()方法中即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值