【发布时间】:2014-09-03 05:01:47
【问题描述】:
我的 Storm 类使用 Redis 队列来收集数据。
我尝试通过
运行我的 Storm jarstorm jar jar_file_name.jar Topology_name configuration_file
但我遇到了以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: Lredis/clients/jedis/Jedis;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2397)
at java.lang.Class.getDeclaredField(Class.java:1946)
at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1659)
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:72)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:480)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:468)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:468)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:365)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1133)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at backtype.storm.utils.Utils.serialize(Utils.java:77)
at backtype.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:111)
at OutlierPredictor.main(OutlierPredictor.java:98)
Caused by: java.lang.ClassNotFoundException: redis.clients.jedis.Jedis
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
我已经编译使用
javac -classpath $HADOOP_CORE:$HBASE_CLASSPATH:/usr/local/hadoop- 2.2.0/redis_jar/commons-pool-1.5.5.jar:/usr/local/hadoop-2.2.0/redis_jar/jedis-2.1.0.jar:/usr/local/apache-storm-0.9.2-incubating/lib/storm-core-0.9.2-incubating.jar -d dir_name/ dir_name/Javafile.java
从命令行。
我在单个节点设置中执行此操作。
出了什么问题?
【问题讨论】:
-
我建议使用maven之类的项目管理工具来关心cp、编译和uberjar。
标签: java linux hadoop redis apache-storm