I am also on Mac. My java version is jdk8 but it shouldn’t matter. Can you post the whole output so that I can take a look?
> On Jul 3, 2019, at 10:37 AM, damjan gjurovski <[email protected]> wrote: > > Hey, > Thank you for the fast response. I have definitely went through the whole > output several times and I never saw any output.. I will try it under Linux > and see if something changes.. > > Regards, > Damjan > > On Wed, 3 Jul 2019, 17:29 Ethan Li, <[email protected] > <mailto:[email protected]>> wrote: > Hi Damjan, > > Your topology is actually able to run locally and I can see see the output > from your bolt: “The new sum is xxx ”. > > Although (local)cluster.shutdown didn’t really work and keep printing out > errors. I would like to take some time later to look into it. > > > By the way, to upgrade from older version of topology, you just need to > switch your dependency from storm-core to storm-client and recompile. > > Thanks, > Ethan > >> On Jul 3, 2019, at 8:05 AM, damjan gjurovski <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hello, >> I am trying to run the new version of Storm but for some reason when >> starting it locally all of my output commands are not shown in the console >> leading me to the conclusion that the storm program is not executed at all. >> The output from Storm is enormous and I cannot see where is the problem. >> >> This is the content of my pom.xml file: >> <groupId>com.example.exclamationTopologyEx</groupId> >> <artifactId>ExclamationTopologtEx</artifactId> >> <version>1.0-SNAPSHOT</version> >> <properties> >> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> >> </properties> >> >> <dependencies> >> <dependency> >> <groupId>org.apache.storm</groupId> >> <artifactId>storm-client</artifactId> >> <version>2.0.0</version> >> <scope>provided</scope> >> </dependency> >> <dependency> >> <groupId>org.apache.storm</groupId> >> <artifactId>storm-server</artifactId> >> <version>2.0.0</version> >> </dependency> >> </dependencies> >> >> <build> >> <plugins> >> <plugin> >> <groupId>org.codehaus.mojo</groupId> >> <artifactId>exec-maven-plugin</artifactId> >> <version>1.5.0</version> >> <executions> >> <execution> >> <goals> >> <goal>exec</goal> >> </goals> >> </execution> >> </executions> >> <configuration> >> <executable>java</executable> >> <includeProjectDependencies>true</includeProjectDependencies> >> <includePluginDependencies>false</includePluginDependencies> >> <classpathScope>compile</classpathScope> >> <mainClass>com.stormExample.SquareStormTopology</mainClass> >> <cleanupDaemonThreads>false</cleanupDaemonThreads> >> </configuration> >> </plugin> >> <plugin> >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-compiler-plugin</artifactId> >> <version>3.6.1</version> >> <configuration> >> <source>1.8</source> >> <target>1.8</target> >> </configuration> >> </plugin> >> </plugins> >> </build> >> >> This is the main class for starting the topology: >> public static void main(String[] args) throws Exception { >> //used to build the toplogy >> TopologyBuilder builder = new TopologyBuilder(); >> //add the spout with name 'spout' and parallelism hint of 5 executors >> builder.setSpout("spout", new DataSpout(),5); >> //add the Emitter bolt with the name 'emitter' >> builder.setBolt("emitter",new EmitterBolt(),8).shuffleGrouping("spout"); >> >> Config conf = new Config(); >> //set to false to disable debug when running on production cluster >> conf.setDebug(false); >> //if there are arguments then we are running on a cluster >> if(args!= null && args.length > 0){ >> //parallelism hint to set the number of workers >> conf.setNumWorkers(3); >> //submit the toplogy >> StormSubmitter.submitTopology(args[0], conf, >> builder.createTopology()); >> }else{//we are running locally >> //the maximum number of executors >> conf.setMaxTaskParallelism(3); >> >> //local cluster used to run locally >> LocalCluster cluster = new LocalCluster(); >> //submitting the topology >> cluster.submitTopology("emitter-topology",conf, >> builder.createTopology()); >> //sleep >> Thread.sleep(10000); >> //shut down the cluster >> cluster.shutdown(); >> } >> } >> >> Additionally, these are my spout and bolt implementations: >> public class DataSpout extends BaseRichSpout { >> >> SpoutOutputCollector _collector; >> int nextNumber; >> >> @Override >> public void open(Map map, TopologyContext topologyContext, >> SpoutOutputCollector spoutOutputCollector) { >> _collector = spoutOutputCollector; >> nextNumber = 2; >> } >> >> @Override >> public void nextTuple() { >> if(nextNumber > 20){ >> return; >> }else{ >> _collector.emit(new Values(nextNumber)); >> >> nextNumber = nextNumber + 2; >> } >> } >> >> @Override >> public void declareOutputFields(OutputFieldsDeclarer >> outputFieldsDeclarer) { >> outputFieldsDeclarer.declare(new Fields("number")); >> } >> } >> public class EmitterBolt extends BaseBasicBolt { >> >> int sumNumbers; >> >> public EmitterBolt(){ >> >> } >> >> @Override >> public void prepare(Map stormConf, TopologyContext context) { >> sumNumbers = 0; >> System.out.println("com.example.exclamationTopologyEx.EmitterBolt >> has been initialized"); >> } >> >> @Override >> public void execute(Tuple tuple, BasicOutputCollector >> basicOutputCollector) { >> int nextNumber = tuple.getIntegerByField("number"); >> >> sumNumbers+=nextNumber; >> >> System.out.println("The new sum is: " + sumNumbers); >> } >> >> @Override >> public void declareOutputFields(OutputFieldsDeclarer >> outputFieldsDeclarer) { >> >> } >> } >> >> I use the maven command: >> mvn compile exec:java -Dstorm.topology=com.example.exclamationTopologyEx >> for running the topology but as I said none of the print lines are shown in >> the console. I have tried to search for a solution from the documentation >> both on the website and in git but I couldn't find anything that can get >> this simple topology to work. >> >> So, please if you could have a look at the code and help me get this >> starting project to work. I think that the problem might be in the pom.xml >> file, I might need some other dependencies or some wrong dependencies. I was >> previously working with the older version of Storm where I only used the >> storm-core dependency which as I saw is now split in the two new >> dependencies. >> >> I am working on a Mac OS and using the latest version of Java and as IDE I >> am using IntelliJ IDEA. >> >> Thank you in advance for your response. >> >> Regards, >> Damjan >> >> >
