strom部署问题
1.storm 引用的 kafka和线上的kafka版本不一致
2.bolt的prepare初始化elasticsearch连接慢,导致第一次处理数据是总是有问题
storm调用prepare方法是异步调用,不会等待所有的bolt中的prepare都完成。在处理第一条数据时等待一段时间,
3.时间窗口长度设置,默认情况下时间窗口的时间长度不能超过消息超时时间。否则会出现异常:Window duration (length + sliding interval) value 32000 is more than topology.message.timeout.secs value 10000
设置消息超时时间 topology.message.timeout.secs
4.storm消费kafka的偏移量无法保存,提示:Error:KeeperErrorCode = NoNode for /storm_kafka/consumers_sdk_start
需要配置spoutConfig.zkServers 和 spoutConfig.zkPort 指定偏移量存储的zookeeper服务器
5.kafka客户端与kafka版本不一致问题,运行topology是出现:java.nio.BufferUnderflowException
6.ERROR o.a.s.util - Async loop died! java.lang.RuntimeException: java.nio.channels.ClosedChannelException
去某个partitions中取数据的时候,storm不能访问当前partitions的broker。
是telnet端口,或者ping当天borker不通造成。可能是没有开通权限或者没有配置ip和host的映射
打断点调试org.apache.storm.kafka.ZkCoordinator.refresh的方法,发现newpartitions里面有个存储的是hostname:9092