2017-04-19 71 views
0

这是我尝试运行的基本wordcount拓扑。但我收到错误为'INFO org.apache.storm.zookeeper.server.SessionTrackerImpl - SessionTrackerImpl exited loop!'。谁能帮我这个??在Apache风暴中提交字数拓扑时出错

当我删除cluster.shutdown(),推文连续不断地来,直到我按下Ctrl + C。同样WORDCOUNT没有显示##

 import java.util.Arrays; 
    import backtype.storm.Config; 
    import backtype.storm.LocalCluster; 
    import backtype.storm.topology.TopologyBuilder; 
    import backtype.storm.tuple.Fields; 
    public class TwitterHashtagStorm { 

    public static void main(String[] args) throws Exception { 
    String consumerKey = "************"; 
    String consumerSecret = "***************"; 
    String accessToken = "**********"; 
    String accessTokenSecret = "***********"; 
    String[] keyWords = {"apple"}; 
    Config config = new Config(); 
    config.setDebug(true); 
    TopologyBuilder builder = new TopologyBuilder(); 
    builder.setSpout("twitter-spout", new TwitterSampleSpout(consumerKey, 
      consumerSecret, accessToken, accessTokenSecret, keyWords)); 
    builder.setBolt("twitter-hashtag-reader-bolt", new HashtagReaderBolt()) 
      .shuffleGrouping("twitter-spout"); 
    builder.setBolt("twitter-hashtag-counter-bolt", 
      new HashtagCounterBolt()).fieldsGrouping(
      "twitter-hashtag-reader-bolt", new Fields("hashtag")); 
    LocalCluster cluster = new LocalCluster(); 
    cluster.submitTopology("TwitterHashtagStorm", config, 
      builder.createTopology()); 
    Thread.sleep(10000); 
    cluster.shutdown(); 
} 
} 

回答

0

10秒(10000毫秒)可能没有足够的时间用于Twitter的连接建立和鸣叫进入你的拓扑结构。您应该将睡眠呼叫设置为更长的时间(至少几个小手指)。

至于显示的工作计数,你的HashTagCounter螺栓打印出粗壮的计数?如果是这样,打印输出可能会在Storm的日志消息中丢失。尝试设置config.setDebud(false)(以减少日志消息,并让您有机会看到计数)或重写HashTagCounter以将消息发送到与您正在运行Storm的控制台分开的另一位置(消息代理,本地套接字接收器等)。