I don't know how to handle this anymore... In the nimbus log file I have a clear reference to storm.CameraScheduler: "2015-05-28T11:39:24.499+0200 b.s.d.nimbus [INFO] Using custom scheduler: storm.CameraScheduler 2015-05-28T11:39:24.514+0200 b.s.d.nimbus [ERROR] Error on initialization of server service-handler java.lang.ClassNotFoundException: storm.CameraScheduler at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ~[na:1.8.0_31] at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_31] at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_31] at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_31] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_31] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.8.0_31] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_31] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_31] at java.lang.Class.forName(Class.java:260) ~[na:1.8.0_31] at backtype.storm.util$new_instance.invoke(util.clj:946) ~[storm-core-0.9.3.jar:0.9.3] at backtype.storm.daemon.nimbus$mk_scheduler.invoke(nimbus.clj:53) ~[storm-core-0.9.3.jar:0.9.3] at backtype.storm.daemon.nimbus$nimbus_data.invoke(nimbus.clj:78) ~[storm-core-0.9.3.jar:0.9.3] at backtype.storm.daemon.nimbus$fn__5043$exec_fn__1108__auto____5044.invoke(nimbus.clj:898) ~[storm-core-0.9.3.jar:0.9.3] at clojure.lang.AFn.applyToHelper(AFn.java:163) [clojure-1.5.1.jar:na] at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na] at clojure.core$apply.invoke(core.clj:617) ~[clojure-1.5.1.jar:na] at backtype.storm.daemon.nimbus$fn__5043$service_handler__5133.doInvoke(nimbus.clj:895) [storm-core-0.9.3.jar:0.9.3] at clojure.lang.RestFn.invoke(RestFn.java:421) [clojure-1.5.1.jar:na] at backtype.storm.daemon.nimbus$launch_server_BANG_.invoke(nimbus.clj:1152) [storm-core-0.9.3.jar:0.9.3] at backtype.storm.daemon.nimbus$_launch.invoke(nimbus.clj:1184) [storm-core-0.9.3.jar:0.9.3] at backtype.storm.daemon.nimbus$_main.invoke(nimbus.clj:1206) [storm-core-0.9.3.jar:0.9.3] at clojure.lang.AFn.applyToHelper(AFn.java:159) [clojure-1.5.1.jar:na] at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na] at backtype.storm.daemon.nimbus.main(Unknown Source) [storm-core-0.9.3.jar:0.9.3]"
But apparently it never finds my jar... How can I make sure that the jar is loaded when starting nimbus? On Thu, May 28, 2015 at 1:08 PM, Franca van Kaam <[email protected]> wrote: > So to give some more detail... > I have a CameraScheduler.class, the package in this class is package storm; > > I made a jar containing this class file with this command: > jar cvf CameraScheduler.jar CameraScheduler.java > > And then I placed this jar in the $(STORM-HOME)/lib directory. > > I put the next line in the storm.yaml of the node running Nimbus: > storm.scheduler: "storm.CameraScheduler" > > Should I be calling it differently in the storm.yaml file? > And how can I be sure the jar is loaded? > > On Thu, May 28, 2015 at 1:04 PM, Ken Danniswara <[email protected]> wrote: > >> Yes you're right. Maybe make sure the jar is loaded when starting Nimbus >> and the package name is correct. >> >> On Thu, May 28, 2015 at 12:40 PM, Franca van Kaam < >> [email protected]> wrote: >> >>> As indicated in the tutorial I put this in the storm.yaml file of the >>> nimbus node: >>> storm.scheduler: "storm.CameraScheduler" >>> >>> So my problem is that when I want to start the Nimbus, it gives me this >>> ClassNotFoundException. I am not even submitting the topology yet... >>> >>> >>> >>> >>> >>> On Thu, May 28, 2015 at 12:35 PM, Franca van Kaam < >>> [email protected]> wrote: >>> >>>> But don't you have to start up nimbus before submitting your topology? >>>> >>>> On Thu, May 28, 2015 at 12:24 PM, Ken Danniswara <[email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> In my case I'm putting the custom scheduler in the same jar with the >>>>> submitted topology. I don't know if this is actually the best practice or >>>>> not, but it works for me. >>>>> >>>>> On Thu, May 28, 2015 at 12:10 PM, Franca van Kaam < >>>>> [email protected]> wrote: >>>>> >>>>>> Hello, >>>>>> >>>>>> I am trying to implement a custom scheduler as explained in >>>>>> http://xumingming.sinaapp.com/885/twitter-storm-how-to-develop-a-pluggable-scheduler/ >>>>>> . >>>>>> >>>>>> However I seem to do something wrong in the last step of the >>>>>> tutorial, because when I try to launch nimbus I get a >>>>>> ClassNotFoundException. >>>>>> >>>>>> 2015-05-28T11:39:24.499+0200 b.s.d.nimbus [INFO] Using custom >>>>>> scheduler: storm.CameraScheduler >>>>>> 2015-05-28T11:39:24.514+0200 b.s.d.nimbus [ERROR] Error on >>>>>> initialization of server service-handler >>>>>> java.lang.ClassNotFoundException: storm.CameraScheduler >>>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:372) >>>>>> ~[na:1.8.0_31] >>>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:361) >>>>>> ~[na:1.8.0_31] >>>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>>> ~[na:1.8.0_31] >>>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:360) >>>>>> ~[na:1.8.0_31] >>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >>>>>> ~[na:1.8.0_31] >>>>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) >>>>>> ~[na:1.8.0_31] >>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>>>>> ~[na:1.8.0_31] >>>>>> at java.lang.Class.forName0(Native Method) ~[na:1.8.0_31] >>>>>> at java.lang.Class.forName(Class.java:260) ~[na:1.8.0_31] >>>>>> at backtype.storm.util$new_instance.invoke(util.clj:946) >>>>>> ~[storm-core-0.9.3.jar:0.9.3] >>>>>> at backtype.storm.daemon.nimbus$mk_scheduler.invoke(nimbus.clj:53) >>>>>> ~[storm-core-0.9.3.jar:0.9.3] >>>>>> at backtype.storm.daemon.nimbus$nimbus_data.invoke(nimbus.clj:78) >>>>>> ~[storm-core-0.9.3.jar:0.9.3] >>>>>> at >>>>>> backtype.storm.daemon.nimbus$fn__5043$exec_fn__1108__auto____5044.invoke(nimbus.clj:898) >>>>>> ~[storm-core-0.9.3.jar:0.9.3] >>>>>> at clojure.lang.AFn.applyToHelper(AFn.java:163) [clojure-1.5.1.jar:na] >>>>>> at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na] >>>>>> at clojure.core$apply.invoke(core.clj:617) ~[clojure-1.5.1.jar:na] >>>>>> at >>>>>> backtype.storm.daemon.nimbus$fn__5043$service_handler__5133.doInvoke(nimbus.clj:895) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at clojure.lang.RestFn.invoke(RestFn.java:421) [clojure-1.5.1.jar:na] >>>>>> at >>>>>> backtype.storm.daemon.nimbus$launch_server_BANG_.invoke(nimbus.clj:1152) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at backtype.storm.daemon.nimbus$_launch.invoke(nimbus.clj:1184) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at backtype.storm.daemon.nimbus$_main.invoke(nimbus.clj:1206) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at clojure.lang.AFn.applyToHelper(AFn.java:159) [clojure-1.5.1.jar:na] >>>>>> at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na] >>>>>> at backtype.storm.daemon.nimbus.main(Unknown Source) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> 2015-05-28T11:39:24.518+0200 b.s.util [ERROR] Halting process: >>>>>> ("Error on initialization") >>>>>> java.lang.RuntimeException: ("Error on initialization") >>>>>> at backtype.storm.util$exit_process_BANG_.doInvoke(util.clj:325) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.5.1.jar:na] >>>>>> at >>>>>> backtype.storm.daemon.nimbus$fn__5043$service_handler__5133.doInvoke(nimbus.clj:895) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at clojure.lang.RestFn.invoke(RestFn.java:421) [clojure-1.5.1.jar:na] >>>>>> at >>>>>> backtype.storm.daemon.nimbus$launch_server_BANG_.invoke(nimbus.clj:1152) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at backtype.storm.daemon.nimbus$_launch.invoke(nimbus.clj:1184) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at backtype.storm.daemon.nimbus$_main.invoke(nimbus.clj:1206) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> at clojure.lang.AFn.applyToHelper(AFn.java:159) [clojure-1.5.1.jar:na] >>>>>> at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na] >>>>>> at backtype.storm.daemon.nimbus.main(Unknown Source) >>>>>> [storm-core-0.9.3.jar:0.9.3] >>>>>> >>>>>> >>>>>> How should I package my scheduler and where exactly should I put it? >>>>>> At the moment what I have done is package my CameraScheduler.class in >>>>>> CameraScheduler.jar and add it to my $STORM_HOME/lib. But apparently >>>>>> this is wrong... Any help? >>>>>> >>>>> >>>>> >>>> >>> >> >
