Unable to get offset lags for kafka. Reason: java.lang.IllegalArgumentException: zk-node '/kafka_sto...

问题描述:

  storm 起动topology的在stormui中可以看到类似错误

  storm 的KafkaSpout 接收kafka 消息时报错,错误如下

 

Unable to get offset lags for kafka. Reason: java.lang.IllegalArgumentException: zk-node '/kafka_storm/webTraceId' dose not exists. at org.apache.storm.kafka.monitor.KafkaOffsetLagUtil.getOldConsumerOffsetsFromZk(KafkaOffsetLagUtil.java:387) at org.apache.storm.kafka.monitor.KafkaOffsetLagUtil.getOffsetLags(KafkaOffsetLagUtil.java:268) at org.apache.storm.kafka.monitor.KafkaOffsetLagUtil.main(KafkaOffsetLagUtil.java:124)

  或者如下

Unable to get offset lags for kafka. Reason: java.lang.NullPointerException at org.apache.storm.kafka.monitor.KafkaOffsetLagUtil.getOffsetLags(KafkaOffsetLagUtil.java:272) at org.apache.storm.kafka.monitor.KafkaOffsetLagUtil.main(KafkaOffsetLagUtil.java:124)

  

原因:

  storm 读取自身存储的kafka信息时,没读到或者解析不正确。这个消息存储在zookeeper中。在

  org.apache.storm.kafka.SpoutConfig
  public SpoutConfig(BrokerHosts hosts, String topic, String zkRoot, String id)中的zkRoot和id,  storm 会在zookeepr的中创建如下目录 /zkRoot/id,在这个目录下面会存放一些kafka相关信息。大致如下:

{"topology":{"id":"alarmTopology-11-1528251428","name":"alarmTopology"},"offset":397,"partition":0,"broker":{"host":"172.16.125.134","port":9092},"topic":"alarm-fe"}

 zookeeper路径如下:

  

[zk: localhost:2181(CONNECTED) 81] ls /kafka_storm/webTraceId
[partition_0, partition_1, partition_2]

 

 

解决办法:

分2步:

1. 要zookeeper中删除对应的目录

delete /kafka_storm/webTraceId/partition_0
delete /kafka_storm/webTraceId/partition_1
delete /kafka_storm/webTraceId/partition_2
delete /kafka_storm/webTraceId

 

 2. 往kafka中生产数据 

  等数据被storm 的kafkaSpout消费之后,/kafka_storm/webTraceId/partition_0 这些目录会被重新建立

问题解决

 

转载于:https://www.cnblogs.com/zhangyy3/p/9144728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值