2013-05-02 15 views
12

Tôi có một cụm 3 nút cassandra với hệ số nhân bản của 2. Các nút đang chạy dsc1.2.3 hoặc dsc1.2.4. Mỗi nút có giá trị num_token là 256 và initial_token đã được nhận xét. Cụm 3 nút này được cân bằng hoàn hảo tức là mỗi nhóm sở hữu khoảng 30% dữ liệu.cách cân bằng lại cụm cassandra sau khi thêm nút mới

Một trong các nút bị lỗi nên tôi bắt đầu một nút mới và nodetool đã xóa nút đã bị lỗi. Nút mới đã được thêm vào cụm nhưng hai nút cũ hơn có hầu hết dữ liệu bây giờ (47,0% và 52,3%) và nút mới chỉ chiếm 0,7% dữ liệu.

Kết quả của tình trạng nodetool là

Datacenter: xx-xxxx 
=================== 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address   Load  Tokens Owns Host ID        Rack 
UN 10.xxx.xxx.xxx 649.78 MB 256  47.0% ba3534b3-3d9f-4db7-844d-39a8f98618f1 1c 
UN 10.xxx.xxx.xxx 643.11 MB 256  52.3% 562f7c3f-986a-4ba6-bfda-22a10e384960 1a 
UN 10.xxx.xxx.xxx 6.84 MB 256  0.7% 5ba6aff7-79d2-4d62-b5b0-c5c67f1e1791 1c 

Làm thế nào để tôi cân bằng cụm này?

+0

Bạn có thể đưa đầu ra của 'trạng thái nodetool' không? – Richard

+0

Bạn có bắt đầu nút mới với num_tokens = 256 không? – Richard

+0

Đã chỉnh sửa bài đăng để thêm đầu ra của 'trạng thái nodetool' – user2341900

Trả lời

6

Bạn không đề cập đến việc chạy sửa chữa trên nút mới, nếu thực sự bạn chưa làm điều đó có thể là nguyên nhân khiến bạn thiếu dữ liệu trên nút mới.

Cho đến khi bạn chạy một sửa chữa nodetool nút mới sẽ chỉ giữ dữ liệu mới được ghi vào nó hoặc dữ liệu đọc-sửa đổi kéo in. Với vnodes bạn thường không cần phải tái cân bằng, nếu tôi ' m hiểu vnodes một cách chính xác, nhưng tôi đã không cá nhân chưa chuyển sang sử dụng vnodes vì ​​vậy tôi có thể sai về điều đó.

4

Dường như nút mới của bạn chưa được khởi động. Bạn đã thêm auto_bootstrap=true vào cassandra.yaml của mình chưa?

Nếu bạn không muốn khởi động, bạn có thể chạy nodetool repair trên nút mới và sau đó nodetool cleanup trên hai thiết bị khác cho đến khi phân phối công bằng.