2011-01-17 27 views
6

Ich weiß, Cassandra ist immer noch extrem in der Beta, aber ich würde gerne damit spielen. Dies ist in keiner Weise ein Produktionsprojekt; es ist nur zum Spaß und um ein bisschen zu lernen. Aber der beste Weg zu lernen ist, tatsächlich zu implementieren und Leute dazu zu bringen, es auf Herz und Nieren zu prüfen.Cassandra auf EC2 bereitstellen?

Ich möchte Cassandra mit Heroku verwenden, so möchte ich es auf EC2 einsetzen (wie Heroku ist). Was ist der beste, einfachste, billigste Weg? Irgendwelche Empfehlungen?

Ich habe ein paar durch Google gesehen, aber sie warnen Dinge wie: Die EC2-Instanzen für den produktiven Einsatz geeignet sind. Sie speichern die Daten in der Instanz selbst und verschwinden, wenn die Instanz heruntergefahren wird.

Antwort

4
  • Verwendung Elastic Block Storage (EBS) Instanzen für die Speicherung von Cassandra und Daten-Log-Dateien. Sie müssen /etc/cassandra/cassandra.yaml ändern, um anzugeben, wohin diese Dateien gehen. EBS-Instanzen bleiben darüber hinaus bestehen, wenn die EC2-Instanzen, mit denen sie verbunden sind, heruntergefahren werden.

  • Sie können es auf einer Instanz installieren, die Schnittstelle zu testen und mit dem Datenmodell zu experimentieren. Sie müssen noch keinen Cluster einrichten.

  • Um die Clusterfunktionen zu testen, könnten Sie versuchen, drei Instanzen einzurichten und allen Schlüsselbereichen einen Replikationsfaktor von 3 zuzuweisen. Dies könnte jedoch eine spätere Stufe des Experimentierens als das Experimentieren mit dem Datenmodell sein. Die empfohlene minimale Clustergröße ist 3.

  • Sie sollten mit verschiedenen Maschinengrößen experimentieren. Zum Experimentieren mit extrem kleinen Instanzgrößen können Sie alternative Anbieter wie Rackspace verwenden. Wenn Sie Leistungsprobleme mit kleineren Instanzgrößen feststellen, prüfen Sie, ob ein Verschieben der Instanzgrößen diese Probleme löst.

  • Es gibt ein paar Alpha-Cassandra-Object-Mapping-Bibliotheken für Rails. Sie können feststellen, dass diese nicht für Sie arbeiten. Sie können sich dafür entscheiden, zu ihnen beizutragen, oder den Modell-Persistenz-Code einfach direkt in Ihren Modellen implementieren. Für Rails 3-Anwendungen sollten Sie sich die ActiveModel-Schnittstelle und die Hilfsmodule ansehen, damit Ihre Modelle gut mit ActionPack und anderen Bibliotheken zusammenarbeiten, die ActiveModel-kompatible Modelle erwarten.

+2

Diese Antwort ist wirklich veraltet. Erstens benutzt niemand EBS mit Cassandra. Im Ernst, tu es nicht. Erstellen Sie stattdessen ein LVM RAID-0-Volume aller ephemeren Datenträger mit ext4. Verwenden Sie m1.xlarge, da es vier Ephemerals und E/A-Bandbreite ist der größte Engpass auf EC2. Stellen Sie sicher, dass Sie Ihre Knoten über Verfügbarkeitszonen hinweg stripen, damit Sie einen Netzsplit/vollständigen AZ-Ausfall überleben können. Schreiben Sie einen Cron-Job, um reguläre nodetool-Snapshots auszuführen und laden Sie ihn zur Sicherung in S3 hoch. Da die I/O-Bandbreite Ihr schlimmster Feind ist, ist es wahrscheinlicher, dass Sie Ihren Cluster vergrößern, als einmal in der Produktion die Instanzgröße zu erhöhen. –

Verwandte Themen