提交storm wordcount相关jar时报错

我运行直播课中的Start-master的jar包时,报找不到主类错误,我看了下这个jar里有这个类啊,不知道是什么原因

1234.png

 

倪传蕾 - Storm工程师@360

赞同来自: fish

1. 你是使用mvn进行打包的吗? 2. 看报错信息是类的路径指定有问题,按照上课视频的步骤走一遍有问题吗?

colincheng - 大数据工程师@易宝支付

赞同来自:

1、检查classpath或者path路径是否正确。 2、jar包路径是否正确。 3、是否包括public static void main(String args){}函数[pre] [/pre]

colincheng - 大数据工程师@易宝支付

赞同来自:

看看你的代码,贴出来看看。

ycyzlp

赞同来自:

package storm.starter; import backtype.storm.Config; import backtype.storm.LocalCluster; import backtype.storm.StormSubmitter; import backtype.storm.task.ShellBolt; import backtype.storm.topology.BasicOutputCollector; import backtype.storm.topology.IRichBolt; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.topology.TopologyBuilder; import backtype.storm.topology.base.BaseBasicBolt; import backtype.storm.tuple.Fields; import backtype.storm.tuple.Tuple; import backtype.storm.tuple.Values; import storm.starter.spout.RandomSentenceSpout; import java.util.HashMap; import java.util.Map; import com.esotericsoftware.kryo.io.Input; /**  * This topology demonstrates Storm's stream groupings and multilang capabilities.  */ public class WordCountTopology { //  public static class SplitSentence extends ShellBolt implements IRichBolt { // //    public SplitSentence() { //      super("python", "splitsentence.py"); //    } // //    @Override //    public void declareOutputFields(OutputFieldsDeclarer declarer) { //      declarer.declare(new Fields("word")); //    } // //    @Override //    public Map<String, Object> getComponentConfiguration() { //      return null; //    } //  }         public static class SplitSentence extends BaseBasicBolt{                 @Override                 public void execute(Tuple input, BasicOutputCollector collector) {                         // TODO Auto-generated method stub                         String sentence = input.getString(0);                         String[] words = sentence.split(" ");                         for (String word : words) {                                 collector.emit(new Values(word));                         }                 }                 @Override                 public void declareOutputFields(OutputFieldsDeclarer declarer) {                         // TODO Auto-generated method stub                         declarer.declare(new Fields("word"));                 }         }   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"));     }   }   public static void main(String[] args) throws Exception {     TopologyBuilder builder = new TopologyBuilder();     builder.setSpout("spout", new RandomSentenceSpout(), 5);     builder.setBolt("split", new SplitSentence(), 8).shuffleGrouping("spout");     builder.setBolt("count", new WordCount(), 12).fieldsGrouping("split", new Fields("word"));     Config conf = new Config();     conf.setDebug(true);     if (args != null && args.length > 0) {       conf.setNumWorkers(3);       StormSubmitter.submitTopologyWithProgressBar(args[0], conf, builder.createTopology());     }     else {       conf.setMaxTaskParallelism(3);       LocalCluster cluster = new LocalCluster();       cluster.submitTopology("word-count", conf, builder.createTopology());       Thread.sleep(10000);       cluster.shutdown();     }   } }

ycyzlp

赞同来自:

这是完整的信息
3456.png
 

要回复问题请先登录注册