2011-01-17 5 views
6

So che Cassandra è ancora estremamente in beta, ma mi piacerebbe giocarci. Questo non è in alcun modo un progetto di produzione; è solo per divertimento e per imparare un po '. Ma il modo migliore per imparare è quello di schierare e far sì che le persone lo mettano alla prova.Distribuisci Cassandra su EC2?

Voglio usare Cassandra con Heroku, quindi mi piacerebbe distribuirlo su EC2 (come Heroku è). Qual è il modo migliore, più semplice ed economico per farlo? Qualche consiglio?

Ho visto alcuni attraverso Google, ma avvertono cose come: Le istanze EC2 non sono adatte per l'uso di produzione. Memorizzano i dati sull'istanza stessa e scompaiono quando l'istanza viene chiusa.

risposta

4
  • Usa Elastic Block Storage (EBS) casi per la memorizzazione di log Cassandra e file di dati. Sarà necessario modificare /etc/cassandra/cassandra.yaml per specificare dove vanno questi file. Le istanze EBS persistono oltre il momento in cui le istanze EC2 sono collegate allo spegnimento.

  • È possibile installarlo su un'istanza per provare l'interfaccia e sperimentare con il modello di dati. Non è ancora necessario creare un cluster.

  • Per testare le funzionalità di clustering, è possibile provare a impostare tre istanze e assegnare a tutti gli spazi chiavi un fattore di replica pari a 3. Ma questa potrebbe essere una fase successiva di sperimentazione rispetto alla sperimentazione con il modello di dati. La dimensione minima consigliata del cluster è 3.

  • È necessario sperimentare con macchine di dimensioni diverse. Per sperimentare con dimensioni di istanze minime, puoi utilizzare fornitori alternativi come Rackspace. Se riscontri problemi di prestazioni con dimensioni di istanza più ridotte, verifica se il passaggio delle dimensioni dell'istanza risolve questi problemi.

  • Ci sono alcune librerie di mappatura alfa Cassandra-Object per Rails. Potresti scoprire che questi non funzionano abbastanza per te. Puoi scegliere di contribuire a loro, o semplicemente implementare il codice di persistenza del modello direttamente nei tuoi modelli. Per le applicazioni Rails 3, potresti voler guardare l'interfaccia ActiveModel e i moduli helper, in modo che i tuoi modelli funzionino bene con ActionPack e altre librerie che prevedono modelli compatibili con ActiveModel.

+2

Questa risposta è davvero superata. Innanzitutto, nessuno usa EBS con cassandra. Seriamente non farlo Invece, creare un volume LVM RAID-0 di tutti i dischi effimeri con ext4. Usa m1.xlarge poiché ha quattro effimeri e la larghezza di banda I/O è il collo di bottiglia più grande su EC2. Assicurati di spulciare i tuoi nodi attraverso le zone di disponibilità in modo da poter sopravvivere a un'interruzione AZ completa/completa. Scrivere un cron job per eseguire regolarmente snapshot nodetool e caricare su S3 per il backup. Anche in questo caso, poiché la larghezza di banda I/O è il peggior nemico, è più probabile che si sviluppi il cluster anziché aumentare la dimensione dell'istanza una volta in produzione. –