2012-09-05 33 views
7

Tôi đang gặp sự cố "me.prettyprint.hector.api.exceptions.HUnavailableException:: Có thể không có đủ bản sao để trình xử lý mức nhất quán". khi tôi có RF = 1, Read Consistency Level = 1 và một trong các nút trong 6 nút vòng/cụm là xuống. Tất cả những lần đọc của tôi đều thất bại với ngoại lệ này. Bất kỳ ý tưởng? Lý tưởng chỉ đọc mà đang tìm kiếm dữ liệu trong nút đó là xuống nên thất bại và tất cả các lần đọc khác nên thành công?Tính khả dụng của Cassandra

+0

Bạn có thấy vấn đề tương tự khi sử dụng cqlsh không? Hector có thể đang cố gắng quá thông minh và phát hiện tính khả dụng của riêng nó. – jbellis

+0

Có. Tôi đã cố gắng CQLSH cũng nó là cùng một vấn đề –

Trả lời

4

Có thể có một vài khả năng:

  • Bạn đang chạy một truy vấn đa hàng (get_range, get_indexed_slices, multiget, hoặc tương đương CQL) đòi hỏi phải có nhiều nút để thể lên
  • cụm của bạn là không cân bằng, với nút xuống sở hữu hầu hết các vòng; cấu hình multi-dc xấu cũng có thể tạo ra thứ gì đó tương tự như
  • Cụm của bạn không ở trạng thái tốt để bắt đầu, nơi một số nút không nhìn thấy các nút khác. Đảm bảo rằng nút nodetool hiển thị cùng một đầu ra khi chạy với từng nút trong cụm

Nếu không có nguyên nhân nào trong số đó là nguyên nhân, hãy kiểm tra kỹ xem bạn có xác định mức độ nhất quán chính xác với Hector và cqlsh hay không.

3

Tôi đã nhìn thấy một cái gì đó tương tự khi tôi định cấu hình sai cài đặt sao chép của mình, cụ thể là tôi đã có các trung tâm dữ liệu sai tên là om chiến lược sao chép. Hãy kiểm tra xem DC của bạn là gì (giả sử bạn đang sử dụng NetworkTopologyStrategy).

Nếu bạn chưa biết tên DC của bạn, trong một vỏ trên một trong các nút chạy:

$ nodetool -h localhost ring 
Address   DC   Rack  Status State Load   Owns Token          
                       141784319550391000000000000000000000000  
172.26.233.135 Cassandra rack1  Up  Normal 25.75 MB  16.67% 0           
172.26.233.136 Cassandra rack1  Up  Normal 26.03 MB  16.67% 28356863910078200000000000000000000000  
172.26.233.137 Cassandra rack1  Up  Normal 27.19 MB  16.67% 56713727820156400000000000000000000000  
172.26.233.138 Cassandra rack1  Up  Normal 26.78 MB  16.67% 85070591730234600000000000000000000000  
172.26.233.139 Solr  rack1  Up  Normal 24.47 MB  16.67% 113427455640313000000000000000000000000  
172.26.233.140 Solr  rack1  Up  Normal 26.66 MB  16.67% 141784319550391000000000000000000000000 

Bạn có thể thấy chúng ta có hai DCs, Cassandra và Solr (đây là một cụm DSE) .

Trong cassandra-cli:

use Keyspace1; 
describe; 

CLI sẽ in các tùy chọn chiến lược:

Keyspace: Catalog: 
    Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy 
    Durable Writes: true 
    Options: [DC1:3] 
... 

Chúng tôi có một mis-match. Cassandra đang tìm kiếm một trung tâm dữ liệu có tên DC1, do đó UnavailableException. Chúng tôi cần cập nhật các tùy chọn sao chép để khớp với các DC thực tế trong cụm của chúng tôi. Trong CLI, hãy cập nhật các tùy chọn chiến lược cho không gian phím của bạn bằng cách sử dụng tên trung tâm dữ liệu:

update keyspace Keyspace1 with strategy_options = {Cassandra:3,Solr:2}; 
+0

Trong trường hợp của tôi, tôi đã lược đồ cassandra sao chép từ môi trường sản xuất (trong đó có hai trung tâm dữ liệu) để môi trường QA (trong đó có một trung tâm dữ liệu). Sau khi sửa lược đồ để chỉ ra một trung tâm dữ liệu, vấn đề đã được giải quyết. – zafar142003

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