cuốn sách gpt4 ai đã làm

Lỗi khi chạy Storm bằng Redis: java.lang.NoClassDefFoundError: Lredis/clients/jedis/Jedis

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 11:13:37 39 4
mua khóa gpt4 Nike

Lớp Storm của tôi sử dụng hàng đợi Redis để thu thập dữ liệu.

Tôi cố gắng chạy bình Storm của mình

Storm jar jar_file_name.jar Topology_name configure_file

Nhưng tôi gặp phải ngoại lệ sau:

Ngoại lệ trong chuỗi "chính" java.lang.NoClassDefFoundError: Lredis/clients/jedis/Jedis;
tại java.lang.Class.getDeclaredFields0 (Phương thức gốc)
tại java.lang.Class.privateGetDeclaredFields(Class.java:2397)
tại java.lang.Class.getDeclaredField(Class.java:1946)
tại java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1659)
tại java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:72)
tại java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:480)
tại java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:468)
tại java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.io.ObjectStreamClass.(ObjectStreamClass.java:468)
tại java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:365)
tại java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1133)
tại java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
tại backtype.storm.utils.Utils.serialize(Utils.java:77)
tại backtype.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:111)
tại OutlierPredictor.main(OutlierPredictor.java:98)
Nguyên nhân là do: java.lang.ClassNotFoundException: redis.clients.jedis.Jedis
tại java.net.URLClassLoader$1.run(URLClassLoader.java:366)
tại java.net.URLClassLoader$1.run(URLClassLoader.java:355)
tại java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.net.URLClassLoader.findClass(URLClassLoader.java:354)
tại java.lang.ClassLoader.loadClass(ClassLoader.java:425)
tại sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
tại java.lang.ClassLoader.loadClass(ClassLoader.java:358)

Tôi đã biên soạn bằng cách sử dụng

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 

từ dòng lệnh.

Tôi làm điều này trong một thiết lập nút duy nhất.

Điều gì đã xảy ra?

câu trả lời hay nhất

Bạn cần đóng gói tất cả mã và phần phụ thuộc vào một cái lọ.

Trích dẫnHướng dẫn bão , phần tôpô,

Việc chạy một cấu trúc liên kết rất đơn giản. Đầu tiên, bạn đóng gói tất cả mã và các phần phụ thuộc vào một tệp duy nhất. Sau đó, bạn chạy một lệnh như sau:

Storm jar all-my-code.jar backtype.storm.MyTopology arg1 arg2

Bạn có thể phải sử dụng một số công cụ đóng gói như OneJAR, JarJar hoặc ANT và tạo một jar chứa tất cả các tệp và phần phụ thuộc. Vui lòng trích dẫn những bài viết SO này

  1. Hợp nhất nhiều lọ vào một lọ duy nhất
  2. Cách dễ nhất để hợp nhất một bản phát hành thành một tệp JAR

Về java - Lỗi khi chạy Storm bằng Redis: java.lang.NoClassDefFoundError: Lredis/clients/jedis/Jedis, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/25636562/

39 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress