Исключение в топологии шторма с WindowedBolt - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь запустить топологию с Windowed Bolt, но получаю следующее исключение:

Exception in thread "main" java.lang.NullPointerException
    at org.apache.storm.topology.WindowedBoltExecutor.declareOutputFields(WindowedBoltExecutor.java:309)
    at org.apache.storm.topology.TopologyBuilder.getComponentCommon(TopologyBuilder.java:432)
    at org.apache.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:120)
    at Main.main(Main.java:23)

Я создал специальный оконный болт, расширив BaseWindowedBolt.

Код топологии:

TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("integer", new RandomIntegerSpout(), 1);
        builder.setBolt("tumblingsum", new CustomTumblingSumWindow().withTumblingWindow(new Duration(10, TimeUnit.SECONDS)),1).shuffleGrouping("integer");
        builder.setBolt("final", new ResultBolt(),1).shuffleGrouping("tumblingsum");
        Config config = new Config();
        config.put(Config.TOPOLOGY_WORKERS, 1);
        StormSubmitter.submitTopology("Test-Windowing-Topology", config, builder.createTopology());

Версия Storm - 1.2.2

Если я использую топологию без WindowedBolt, значит, она работает.

Я что-то упустил?

Спасибо

1 Ответ

0 голосов
/ 04 сентября 2018

Строка, из которой вы получаете исключение: https://github.com/apache/storm/blob/v1.2.2/storm-core/src/jvm/org/apache/storm/topology/WindowedBoltExecutor.java#L309.

Полагаю, ваш болт возвращает ноль от getComponentConfiguration. Это похоже на ошибку, но вы можете обойти ее, вернув пустую карту из getComponentConfiguration.

Поднято https://issues.apache.org/jira/browse/STORM-3211 чтобы исправить это.

...