2016-04-01 2 views
1

Ich bin neu mit Sturm, ich ging durch das Wort zählen Beispiel Sturm. Hier ist die Schraube, die Spur der Grafen hältWie ist dieses Wortzahl Schraubengewinde sicher?

public static class WordCount extends BaseBasicBolt { 
    Map<String, Integer> counts = new HashMap<String, Integer>(); 

    @Override 
    public void execute(Tuple tuple, BasicOutputCollector collector) { 
     String word = tuple.getString(0); 
     Integer count = counts.get(word); 
     if (count == null) 
     count = 0; 
     count++; 
     counts.put(word, count); 
     collector.emit(new Values(word, count)); 
    } 

    @Override 
    public void declareOutputFields(OutputFieldsDeclarer declarer) { 
     declarer.declare(new Fields("word", "count")); 
    } 
    } 

Von meinem Verständnis, Sturm mehrere Threads für Bolzen startet die parallel laufen, so wie verwendet HashMap hier Thread-sicher?

Antwort

4
+0

Also in diesem Fall gibt es mehrere Instanz von hashmap während der Hinrichtung? Nicht alle Schlüsselwerte sind an einem einzigen Ort vorhanden? – Dude

+0

Ja, da sind; aber jedes Wort erscheint wegen '.fieldsGrouping (" split ", neuer Fields (" word ")) in der Topologiebeschreibung nur in einer einzigen Schraube. –