#mongodb #apache-storm
#mongodb #apache-storm
Вопрос:
при использовании Apache Storm 2.1.0 с mongodb у меня возникает ошибка при выполнении Bolt :
java.lang.NullPointerException
at org.apache.storm.mongodb.common.mapper.SimpleMongoLookupMapper.toTuple(SimpleMongoLookupMapper.java:46)
at org.apache.storm.mongodb.bolt.MongoLookupBolt.execute(MongoLookupBolt.java:70)
at org.apache.storm.executor.bolt.BoltExecutor.tupleActionFn(BoltExecutor.java:234)
at org.apache.storm.executor.Executor.accept(Executor.java:275)
at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:131)
at org.apache.storm.utils.JCQueue.consume(JCQueue.java:111)
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:171)
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:158)
at org.apache.storm.utils.Utils$1.run(Utils.java:392)
at java.lang.Thread.run(Thread.java:748)
Я использую образец https://github.com/apache/storm/tree/v2.1.0/examples/storm-mongodb-examples Использование https://github.com/apache/storm/blob/v2.1.0/examples/storm-mongodb-examples/src/main/java/org/apache/storm/mongodb/topology/LookupWordCount.java для запуска топологии
Топология запускается командой :
storm jar --config /tmp/cfg/config.yml storm-mongodb-examples-2.1.4.jar org.apache.storm.mongodb.topology.LookupWordCount mongodb://<user>:<password>@<mongo server address>:<mongo port>/<instance name>?authSource=admin wordcount
wordcount — это имя коллекции, которое существует в моем тесте.
Я получаю исключение NPE независимо от того, существует коллекция или нет.
Версия Mongodb — v3.6.6
Спасибо за помощь
Комментарии:
1. Для mongodb это произошло из-за отсутствия данных, соответствующих запросу. Запуск topology InsertWordCount решает проблему.
Ответ №1:
У меня аналогичная проблема с HDFS с использованием образца https://github.com/apache/storm/tree/v2.1.0/examples/storm-hdfs-examples :
ava.lang.RuntimeException: java.lang.NullPointerException
at org.apache.storm.utils.Utils$1.run(Utils.java:407)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at org.apache.storm.hdfs.spout.FileLock$LogEntry.deserialize(FileLock.java:290)
Версия HDFS 2.6.0
Это происходит с spout, в отличие от mongodb, где это происходит с bolt.