2011-01-17 84 views
6

我知道Cassandra仍然处于测试阶段,但我想玩一玩。这绝不是一个生产项目;这只是为了好玩并学习一点点。但最好的学习方式是实际部署并让人们通过它的步伐。在EC2上部署Cassandra?

我想在Heroku中使用Cassandra,所以我想将它部署到EC2上(就像Heroku一样)。什么是最好,最简单,最便宜的方法呢?任何建议?

我见过一些通过Google,但他们警告像这样的事情:EC2实例不适合生产使用。它们将数据存储在实例本身中,并在实例关闭时消失。

回答

4
  • 使用弹性块存储(EBS),用于存储卡桑德拉日志和数据文件的实例。您将需要更改/etc/cassandra/cassandra.yaml以指定这些文件的位置。 EBS实例在其关联的EC2实例关闭之后仍然存在。

  • 您可以将其安装在一个实例上,以尝试使用接口并尝试数据模型。您还不需要设置群集。

  • 要测试群集功能,您可以尝试设置三个实例并为所有密钥空间提供复制因子3.但是,这可能是实验的后期阶段,而不是试验数据模型。建议的最小簇大小为3.

  • 您应该试验不同的机器尺寸。为了试验超小型实例大小,您可以使用Rackspace等替代供应商。如果遇到小实例大小的性能问题,请查看是否向上移动实例大小解决了这些问题。

  • 有几个用于Rails的alpha Cassandra-Object-Mapping库。你可能会发现这些对你来说并不合适。您可以选择回馈给他们,或者直接在模型中实现模型持久性代码。对于Rails 3应用程序,您可能需要查看ActiveModel接口和帮助程序模块,以便您的模型可以与ActionPack和其他期望与ActiveModel兼容的模型的库很好地工作。

+2

此回复确实过时。首先,没有人用cassandra使用EBS。严重不要这样做。相反,使用ext4创建所有临时磁盘的LVM RAID-0卷。使用m1.xlarge,因为它有四个短暂的时间,I/O带宽是您EC2上最大的瓶颈。 确保在可用区域上划分节点,以便在净分割/完全AZ中断的情况下继续存在。 编写一个cron作业来执行常规节点工具快照并上传到S3进行备份。 同样,由于I/O带宽是您最大的敌人,因此您在生产中一次性增加实例大小的可能性更大。 –