2011-01-17 81 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帶寬是您最大的敵人,因此您在生產中一次性增加實例大小的可能性更大。 –