Tôi đang sử dụng Cassandra nhúng. Khi tôi tắt và khởi động lại dữ liệu dịch vụ Cassandra của tôi bị mất. Tôi nghĩ rằng dữ liệu phong nha không được xả đúng vào đĩa. Vì vậy, tôi đã thử sử dụng nodetool để xóa dữ liệu theo cách thủ công và kiểm tra xem dữ liệu có sẵn hay không. Nhưng nodetool dường như không hoạt động đúng cách cho dịch vụ Cassandra được nhúng. Tôi nhận được lỗi sau:Lập trình tuôn ra dữ liệu đến cassandra mỗi lần trước khi cassandra tắt
c:\vijay\cassandra\bin>nodetool -host 192.168.2.86 -p 7199 drain
Starting NodeTool
Failed to connect to '192.168.2.86:7199': Connection refused: connect
Tôi đã cố đặt thuộc tính jmx cho đến khi tôi gặp lỗi. Tôi đã thêm các dòng sau vào mã của mình:
System.setProperty("com.sun.management.jmxremote", "true");
System.setProperty("com.sun.management.jmxremote.port", "7197");
System.setProperty("com.sun.management.jmxremote.authenticate", "false");
System.setProperty("com.sun.management.jmxremote.ssl", "false");
System.setProperty("java.rmi.server.hostname", "my ip");
Vì vậy, có cách nào để tự xóa dữ liệu vào Cassandra mà không sử dụng nodetool không?
Sửa 1:
Sau giờ cố gắng Bây giờ tôi có thể chạy nodetool (thay vì thêm cấu hình jmx vào mã tôi thêm vào Eclipse cấu hình gỡ lỗi và nó làm việc). Tôi chạy lệnh xả ngay bây giờ dữ liệu được xả đúng vào đĩa. Vì vậy, bây giờ câu hỏi của tôi là: tại sao dữ liệu không được xả đúng cách? Mỗi khi tôi khởi động lại dịch vụ Cassandra, những thay đổi gần đây đã biến mất.
Dữ liệu không được xóa cho đến khi memtable đạt đến một kích thước nhất định. Trước thời gian đó, sự kiên trì được đảm bảo bởi nhật ký cam kết mà * được * xả vào thời điểm ghi nhận. – RussS
Đó là nơi mà vấn đề là .. Trong trường hợp của tôi, tôi đoán cam kết các bản ghi không đúng flushed .. khi tôi xóa dữ liệu bằng cách sử dụng nodetool trước khi tắt dịch vụ xuống, nó hoạt động tốt, dữ liệu có sẵn sau khi khởi động lại máy chủ. bất kỳ cách nào để lập trình tuôn ra dữ liệu mỗi khi máy chủ đi xuống ?? – Vijay
Tôi nghĩ bạn nên cố gắng tìm ra lý do tại sao nhật ký cam kết không phải là đỏ bừng. Nó phải liên tục viết và xả trừ khi bạn tắt fsync hoặc fsync không hoạt động đúng trên hệ thống của bạn. Khi điều này được sửa, bạn sẽ không mất dữ liệu khi khởi động lại và bạn sẽ không phải tự xóa. – RussS