Scheint wie ein NoClassDefFoundError
wäre eine einfache Sache zu beheben, aber ich kann nicht scheinen, dies herauszufinden.Verwenden von pyleus: NoClassDefFoundError: BackType/Sturm/Topologie/IRichBolt
Ich benutze Pyleus auf der word_count example. Ich bin zu bauen Lage mit:
pyleaus build word_count/pyleus_topology.yaml
Dann versuche ich, lokal auszuführen (oder auch wenn ich versuche, einreichen, erhalte ich den gleichen Fehler):
pyleus local --debug word_count.jar
Running: /mypath/jre/bin/java -client -Ddaemon.name= -Dstorm.options= -Dstorm.home=/mypath/storm -Dstorm.log.dir=/mypath/storm/logs -Djava.library.path=/mypath/jre/lib/ -Dstorm.conf.file= -cp /mypath/storm/lib/storm-core-1.0.1.jar:/mypath/storm/lib/asm-5.0.3.jar:/mypath/storm/lib/log4j-over-slf4j-1.6.6.jar:/mypath/storm/lib/log4j-slf4j-impl-2.1.jar:/mypath/storm/lib/log4j-core-2.1.jar:/mypath/storm/lib/kryo-3.0.3.jar:/mypath/storm/lib/storm-rename-hack-1.0.1.jar:/mypath/storm/lib/objenesis-2.1.jar:/mypath/storm/lib/reflectasm-1.10.1.jar:/mypath/storm/lib/log4j-api-2.1.jar:/mypath/storm/lib/minlog-1.3.0.jar:/mypath/storm/lib/slf4j-api-1.7.7.jar:/mypath/storm/lib/clojure-1.7.0.jar:/mypath/storm/lib/servlet-api-2.5.jar:/mypath/storm/lib/disruptor-3.3.2.jar:word_count.jar:/mypath/storm/conf:/mypath/storm/bin -Dstorm.jar=word_count.jar com.yelp.pyleus.PyleusTopologyBuilder --local --debug
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: backtype/storm/topology/IRichBolt
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.IRichBolt
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
Was mir verwirrend ist hier, dass Es sieht so aus, als ob alle storm libs im Klassenpfad enthalten sind, wenn Sie in meinem Fehlerprotokoll blättern. Was fehlt mir hier? Ich benutze Storm 1.0.1, pyleus 0.3.0, Java 1.8, Python 2.7.
Weiß jemand, ob pyleus für Storm 1.0.1 funktioniert? – woot
@JarrodRoberson Dies als eine dup von einer sehr generischen Erklärung dessen, was NoClassDefFoundError ist, zu markieren, ist ehrlich gesagt eine Überforderung Ihrerseits. Keine der Antworten passt gut, um schnell die Frage zu beantworten, warum mein Problem ohne viel zu graben da ist. Ich bin sicher, dass andere darauf stoßen werden, weil es nicht offensichtlich ist, dass pyleus die neueren Versionen von Storm nicht unterstützt. – woot
gleichen Grund für jede Instanz dieses Fehlers und die gleiche Antwort für jede Frage zu diesem Fehler, setzen Sie die fehlende Klasse auf den Klassenpfad, * wie Sie das für Ihre besondere Situation tun ist extrem lokalisiert *, welche Version von was auch immer irrelevant ist, tut Ändern Sie nicht den Grund für diese Ausnahme oder wie Sie sie beheben können. –