2012-11-04 16 views
8

Czy możliwe jest dynamiczne dodawanie nowych hostów do klastra Cassandra?Dynamiczne dodawanie nowych węzłów w Cassandra

Co staram się zrobić to skonfigurować program, który potrafi:

  • Skonfiguruj lokalną wersję bazy danych dla każdego użytkownika
  • maszyna każdego użytkownika staną się częścią klastra (the maszyny będą gospodarzami)
  • Dane zostaną powtórzone we wszystkich klastrach

Budowa klastra z wieloma hostami zazwyczaj pociąga za sobą configuring the cassandra.yaml do przechowywania nasion, listen_addr ess i rpc_address każdego hosta.

Moim pomysłem jest edycja tych plików za pomocą języka Java i wstawianie nowych adresów hostów zgodnie z wymaganiami, ale upewnienie się, że dane są dokładne w plikach cassandra.yaml każdego użytkownika, byłoby trudne.

Zastanawiam się, czy ktoś zrobił coś podobnego lub ma jakąkolwiek radę na lepszy sposób, aby to osiągnąć.

Odpowiedz

3

Tak jest możliwe. Spójrz na Netflix's Priam, aby uzyskać pełny przykład zarządzania klastrem dynamicznej kassandry (ale zaprojektowanym do współpracy z Amazon EC2).

Dla rpc_address i listen_address można ustawić skrypt uruchamiania, który konfiguruje plik cassandra.yaml, jeśli nie jest on prawidłowy.

Dla nasion można skonfigurować niestandardowego dostawcę materiału siewnego. Spójrz na seed provider used for Netflix's Priam, aby dowiedzieć się, jak go wdrożyć.

Najtrudniejszą częścią będzie zarządzanie tokenami przypisanymi do każdego węzła w efektywny sposób. Cassandra 1.2 jest tuż za rogiem i będzie zawierać funkcję zwaną wirtualnymi węzłami, która, IMO, będzie dobrze działać w twoim przypadku. Zobacz: Acunu presentation about it

Powiązane problemy