2013-06-20 25 views
7
ERROR [WRITE-/10.10.35.30] 2013-06-19 23:15:56,907 CassandraDaemon.java (line 175) Exception in thread Thread[WRITE-/10.10.35.30,5,main] 
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy 
    at org.xerial.snappy.SnappyOutputStream.<init>(SnappyOutputStream.java:79) 
    at org.xerial.snappy.SnappyOutputStream.<init>(SnappyOutputStream.java:66) 
    at org.apache.cassandra.net.OutboundTcpConnection.connect(OutboundTcpConnection.java:341) 
    at org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:143) 

Khi đi qua biết vấn đề tôi thấy này Thư viện bản địa snappy-1.0.4.1-libsnappyjava.so cho nén Snappy được bao gồm trong snappy-java-1.0.4.1. tệp jar. Khi JVM khởi tạo JAR, thư viện được thêm vào thư mục tạm thời mặc định. Nếu thư mục tạm thời mặc định được gắn với một tùy chọn noexec, nó dẫn đến ngoại lệ trên.cassandra 1.2 không init snappy trong freebsd

tôi đã thêm JVM_OPTS = -Dorg.xerial.snappy.tempdir =/tmp vào cassandra.in.sh và nó vẫn không hoạt động. tôi cũng đã cố gắng xác định thư mục tạm trực tiếp

./bin/cassandra -Dorg.xerial.snappy.tempdir=/tmp 

Trên phiên bản cassandra cùng máy 1.0.12 tác phẩm tốt.

Mọi trợ giúp sẽ được đánh giá cao.

+1

Bạn có đang chạy điều trên một nút không? Nếu vậy có thể đi đến cassandra.yaml và thay đổi internode_compression để không và khởi động lại máy chủ – abhi

+0

Tôi đã có cùng một vấn đề trên RHEL5.9 khi chạy thử nghiệm tích hợp với EmbeddedCassandra, nhưng sửa chữa được đề xuất bởi abhi đã làm các trick. Cảm ơn! –

Trả lời

5

Vấn đề là không có thư viện FreeBSD có trong tệp JAR linh hoạt đi kèm với Cassandra. Cài đặt cổng lưu trữ/snappy-java, xóa tệp jAR snappy-java đi kèm với Cassandra và sao chép /usr/local/share/java/classes/snappy-java.jar vào thư mục lib của Cassandra.

+0

Vì vậy, bạn có nghĩa là để nói rằng họ bó thư viện bản địa cùng với các jar. Yikes .. – scrapcodes

2

Sự cố tương tự đã xảy ra khi cố gắng bật tính năng nén linh hoạt cho apache kafka 0.8 trên FreeBSD nhưng giải pháp là như nhau. Chỉ cần sao chép /usr/local/share/java/classes/snappy-java.jar vào thư mục kafka/src/core/target/scala-2.8.0, khởi động lại kafka và tận hưởng!

Các vấn đề liên quan