错误backtype.storm.util-异步循环已终止!java.lang.RuntimeException:java.lang.NullPointerException

错误backtype.storm.util-异步循环已终止!java.lang.RuntimeException:java.lang.NullPointerException,java,mongodb,mongodb-query,apache-kafka,apache-storm,Java,Mongodb,Mongodb Query,Apache Kafka,Apache Storm,我正在尝试将Storm word count程序的输出写入mongoDB。这是我在执行该程序时遇到的错误。尽管我能够成功打印重用结果。当我尝试写入输出时,问题开始出现 生成的错误: Jun 01, 2015 3:24:23 PM com.mongodb.DBTCPConnector fetchMaxBsonObjectSize WARNING: Exception determining maxBSON size using0 java.io.IOException: couldn't conn

我正在尝试将Storm word count程序的输出写入mongoDB。这是我在执行该程序时遇到的错误。尽管我能够成功打印重用结果。当我尝试写入输出时,问题开始出现

生成的错误:

Jun 01, 2015 3:24:23 PM com.mongodb.DBTCPConnector fetchMaxBsonObjectSize
WARNING: Exception determining maxBSON size using0
java.io.IOException: couldn't connect to [Ritesh-RM/127.0.1.1:27017] bc:java.net.ConnectException: Connection refused
at com.mongodb.DBPort._open(DBPort.java:206)
at com.mongodb.DBPort.go(DBPort.java:94)
at com.mongodb.DBPort.go(DBPort.java:75)
at com.mongodb.DBPort.findOne(DBPort.java:129)
at com.mongodb.DBPort.runCommand(DBPort.java:138)
at com.mongodb.DBTCPConnector.fetchMaxBsonObjectSize(DBTCPConnector.java:419)
at com.mongodb.Mongo.getMaxBsonObjectSize(Mongo.java:541)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:237)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:210)
at com.mongodb.DBCollection.insert(DBCollection.java:80)
at bolts.WordCounter.execute(WordCounter.java:88)
at backtype.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50)
at backtype.storm.daemon.executor$fn__3439$tuple_action_fn__3441.invoke(executor.clj:633)
at backtype.storm.daemon.executor$mk_task_receiver$fn__3362.invoke(executor.clj:401)
at backtype.storm.disruptor$clojure_handler$reify__1445.onEvent(disruptor.clj:58)
at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125)
at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
at backtype.storm.daemon.executor$fn__3439$fn__3451$fn__3498.invoke(executor.clj:748)
at backtype.storm.util$async_loop$fn__460.invoke(util.clj:463)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:745)

Jun 01, 2015 3:24:23 PM com.mongodb.DBTCPConnector fetchMaxBsonObjectSize
WARNING: Exception determining maxBSON size using0
java.io.IOException: couldn't connect to [Ritesh-RM/127.0.1.1:27017]                                                                bc:java.net.ConnectException: Connection refused
at com.mongodb.DBPort._open(DBPort.java:206)
at com.mongodb.DBPort.go(DBPort.java:94)
at com.mongodb.DBPort.go(DBPort.java:75)
at com.mongodb.DBPort.findOne(DBPort.java:129)
at com.mongodb.DBPort.runCommand(DBPort.java:138)
at com.mongodb.DBTCPConnector.fetchMaxBsonObjectSize(DBTCPConnector.java:419)
at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:406)
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:144)
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:137)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:255)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:210)
at com.mongodb.DBCollection.insert(DBCollection.java:80)
at bolts.WordCounter.execute(WordCounter.java:88)
at backtype.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50)
at backtype.storm.daemon.executor$fn__3439$tuple_action_fn__3441.invoke(executor.clj:633)
at backtype.storm.daemon.executor$mk_task_receiver$fn__3362.invoke(executor.clj:401)
at backtype.storm.disruptor$clojure_handler$reify__1445.onEvent(disruptor.clj:58)
at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125)
at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
at backtype.storm.daemon.executor$fn__3439$fn__3451$fn__3498.invoke(executor.clj:748)
at backtype.storm.util$async_loop$fn__460.invoke(util.clj:463)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:745)

Jun 01, 2015 3:24:23 PM com.mongodb.DBPortPool gotError
WARNING: emptying DBPortPool to localhost:27017 b/c of error
java.io.IOException: couldn't connect to [Ritesh-RM/127.0.1.1:27017]                                                                bc:java.net.ConnectException: Connection refused
at com.mongodb.DBPort._open(DBPort.java:206)
at com.mongodb.DBPort.go(DBPort.java:94)
at com.mongodb.DBPort.go(DBPort.java:75)
at com.mongodb.DBPort.say(DBPort.java:70)
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:151)
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:137)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:255)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:210)
at com.mongodb.DBCollection.insert(DBCollection.java:80)
at bolts.WordCounter.execute(WordCounter.java:88)
at backtype.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50)
at backtype.storm.daemon.executor$fn__3439$tuple_action_fn__3441.invoke(executor.clj:633)
at backtype.storm.daemon.executor$mk_task_receiver$fn__3362.invoke(executor.clj:401)
at backtype.storm.disruptor$clojure_handler$reify__1445.onEvent(disruptor.clj:58)
at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125)
at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
at backtype.storm.daemon.executor$fn__3439$fn__3451$fn__3498.invoke(executor.clj:748)
at backtype.storm.util$async_loop$fn__460.invoke(util.clj:463)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:745)

8037 [Thread-9-word-counter] ERROR backtype.storm.util - Async loop died!
java.lang.RuntimeException: java.lang.NullPointerException
at                                                                                  backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$fn__3439$fn__3451$fn__3498.invoke(executor.clj:748) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.util$async_loop$fn__460.invoke(util.clj:463) ~[storm-core-0.9.4.jar:0.9.4]
at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
Caused by: java.lang.NullPointerException: null
at com.mongodb.DBTCPConnector._error(DBTCPConnector.java:287) ~[com.mongodb.jar:na]
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:161) ~[com.mongodb.jar:na]
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:137) ~[com.mongodb.jar:na]
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:255) ~[com.mongodb.jar:na]
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:210) ~[com.mongodb.jar:na]
at com.mongodb.DBCollection.insert(DBCollection.java:80) ~[com.mongodb.jar:na]
at bolts.WordCounter.execute(WordCounter.java:88) ~[classes/:na]
at backtype.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$fn__3439$tuple_action_fn__3441.invoke(executor.clj:633) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$mk_task_receiver$fn__3362.invoke(executor.clj:401) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.disruptor$clojure_handler$reify__1445.onEvent(disruptor.clj:58) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125) ~[storm-core-0.9.4.jar:0.9.4]
... 6 common frames omitted
8038 [Thread-9-word-counter] ERROR backtype.storm.daemon.executor - 
java.lang.RuntimeException: java.lang.NullPointerException
at                                                                                 backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$fn__3439$fn__3451$fn__3498.invoke(executor.clj:748) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.util$async_loop$fn__460.invoke(util.clj:463) ~[storm-core-0.9.4.jar:0.9.4]
at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
Caused by: java.lang.NullPointerException: null
at com.mongodb.DBTCPConnector._error(DBTCPConnector.java:287) ~[com.mongodb.jar:na]
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:161) ~[com.mongodb.jar:na]
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:137) ~[com.mongodb.jar:na]
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:255) ~[com.mongodb.jar:na]
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:210) ~[com.mongodb.jar:na]
at com.mongodb.DBCollection.insert(DBCollection.java:80) ~[com.mongodb.jar:na]
at bolts.WordCounter.execute(WordCounter.java:88) ~[classes/:na]
at backtype.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$fn__3439$tuple_action_fn__3441.invoke(executor.clj:633) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$mk_task_receiver$fn__3362.invoke(executor.clj:401) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.disruptor$clojure_handler$reify__1445.onEvent(disruptor.clj:58) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125) ~[storm-core-0.9.4.jar:0.9.4]
... 6 common frames omitted
8137 [Thread-9-word-counter] ERROR backtype.storm.util - Halting process: ("Worker died")
java.lang.RuntimeException: ("Worker died")
at backtype.storm.util$exit_process_BANG_.doInvoke(util.clj:325) [storm-core-0.9.4.jar:0.9.4]
at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.5.1.jar:na]
at backtype.storm.daemon.worker$fn__4693$fn__4694.invoke(worker.clj:491) [storm-core-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$mk_executor_data$fn__3272$fn__3273.invoke(executor.clj:240) [storm-core-0.9.4.jar:0.9.4]
at backtype.storm.util$async_loop$fn__460.invoke(util.clj:473) [storm-core-0.9.4.jar:0.9.4]
at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
****对字螺栓****

public class WordCounter extends BaseBasicBolt {

Integer id;
String name;
Map<String, Integer> counters;

/**
 * At the end of the spout (when the cluster is shutdown
 * We will show the word counters
 */
@Override
public void cleanup() {
    /*try{
        MongoClient client = new MongoClient(new ServerAddress("localhost", 27017));
        DB database = client.getDB("storm");
        final DBCollection collection = database.getCollection("query");

        BasicDBObject dbObject = new BasicDBObject();
        for(Map.Entry<String, Integer> entry : counters.entrySet()){
        dbObject.put("searchItem",entry.getKey());
        dbObject.put("count",entry.getValue());
        collection.insert(dbObject);
        }
        client.close();

    }catch (UnknownHostException e) {
        e.printStackTrace();
    }*/
}

/**
 * On create 
 */
@Override
public void prepare(Map stormConf, TopologyContext context) {
    this.counters = new HashMap<String, Integer>();
    this.name = context.getThisComponentId();
    this.id = context.getThisTaskId();
}

@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {}


@Override
public void execute(Tuple input, BasicOutputCollector collector) {
    String str = input.getString(0);
    /**
     * If the word dosn't exist in the map we will create
     * this, if not We will add 1 
     */
    try{
    Mongo mongo = new Mongo("localhost", 27017);
    DB db = mongo.getDB("query");

    final DBCollection table = db.getCollection("query");



    BasicDBObject dbObject = new BasicDBObject();


    if(!counters.containsKey(str)){
        counters.put(str, 1);
        dbObject.put("searchItem",str);
        dbObject.put("count",1);
        table.insert(dbObject);
    }else{
        Integer c = counters.get(str) + 1;
        counters.put(str, c);
        BasicDBObject query = new BasicDBObject();
        query.put("searchItem", str);
        BasicDBObject documentDetail = new BasicDBObject();

        documentDetail.put("count", c);
        BasicDBObject updateObj = new BasicDBObject();
        updateObj.put("$set", documentDetail);

        table.update(query, updateObj);
    }
     }catch (UnknownHostException e) {
            e.printStackTrace();
        }
     System.out.println("In Counter : ");
}
公共类WordCounter扩展了BaseBasicBolt{
整数id;
字符串名;
地图计数器;
/**
*喷口末端(当集群关闭时
*我们将显示单词计数器
*/
@凌驾
公共空间清理(){
/*试一试{
MongoClient=新的MongoClient(新服务器地址(“localhost”,27017));
DB database=client.getDB(“风暴”);
final DBCollection collection=database.getCollection(“查询”);
BasicDBObject=新的BasicDBObject();
for(Map.Entry:counters.entrySet()){
put(“searchItem”,entry.getKey());
put(“count”,entry.getValue());
collection.insert(dbObject);
}
client.close();
}捕获(未知后异常e){
e、 printStackTrace();
}*/
}
/**
*论创造
*/
@凌驾
公共空间准备(地图风暴形态、地形上下文){
this.counters=new HashMap();
this.name=context.getThisComponentId();
this.id=context.getHistAskid();
}
@凌驾
public void declareOutputFields(outputfieldsclarer declarer){}
@凌驾
公共void执行(元组输入,BasicOutCollector){
String str=input.getString(0);
/**
*如果地图上没有这个词,我们将创建
*如果不是,我们将添加1
*/
试一试{
Mongo Mongo=新的Mongo(“本地主机”,27017);
DB=mongo.getDB(“查询”);
final DBCollection table=db.getCollection(“查询”);
BasicDBObject=新的BasicDBObject();
如果(!counters.containsKey(str)){
计数器。put(str,1);
dbObject.put(“searchItem”,str);
dbObject.put(“count”,1);
表.insert(dbObject);
}否则{
整数c=计数器。get(str)+1;
计数器。put(str,c);
BasicDBObject查询=新建BasicDBObject();
query.put(“searchItem”,str);
BasicDBObject documentDetail=新的BasicDBObject();
文件详细信息。放置(“计数”,c);
BasicDBObject UpdateObject=新的BasicDBObject();
updateObj.put(“$set”,documentDetail);
表.update(查询,updateObj);
}
}捕获(未知后异常e){
e、 printStackTrace();
}
System.out.println(“柜台内:”);
}

}

由于mongoDB版本,我面临这个错误。 我在pom.xml中更改了这一点,一切正常

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.1</version>
</dependency>

org.mongodb
mongo java驱动程序
3.0.1