Put our Scheduler into a jar and put the jar into the lib folder of your
Storm installation (eg, /opt/storm-0.9.3/lib).

-Matthias


On 05/28/2015 12:40 PM, Franca van Kaam 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] <mailto:[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]
>     <mailto:[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] <mailto:[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?
> 
> 
> 
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to