Storm 实战工作经验分享

问题1、拓扑提交后,在storm-ui查看拓扑起来了,但是里面的spout或bolt一个都没有

           原因,可能supervisor没起来,或者ui里面看到这个拓扑没有获得资源,worker数量,executor都是0.

          需要增加资源,比如内存,让storm supervisor正常运行起来。

问题2、在storm进行local 测试,启动拓扑报错。NoClassDefFoundError:kafka/api/OffsetRequest

          原因解决:

If you use LocalCluster deployment a storm topology you need to add the Kafka lib to your dependencies (for Storm 0.10.0):

<dependency>

<groupId>org.apache.kafka</groupId>

<artifactId>kafka_2.9.2</artifactId>

<version>0.8.1.1</version>

</dependency>

问题3、storm kafka-spout报java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFactory at org.apache.log4j.Logger.getLogge问题

       需要在pom增加一个依赖:

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>log4j-over-slf4j</artifactId>

<scope>test</scope>

<version>${slf4j.version}</version>

</dependency>

或者参考:http://weyo.me/pages/techs/kafka-problem-with-log4j/

问题4、storm 的spout有fail现象

        默认spout发射出去的tuple,30s以内没有ack回来,就默认是fail了。需要设置spout最大pengding的数量,这样可以减少bolt的压力。

        topology.max.spout.pending 的意义在于 ,缓存spout 发送出去的tuple,当下流的bolt还有topology.max.spout.pending 个 tuple 没有消费完时,spout会停下来,等待下游bolt去消费,当tuple 的个数少于topology.max.spout.pending个数时,spout 会继续从消息源读取消息。(这个属性只对可靠消息处理有用)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值