使用數人云輕松部署 Cassandra 集群
Cassandra 是一個高可靠的大規模分布式存儲系統,是一個高度可伸縮的、一致的、分布式的結構化 key-value 存儲方案,集 Google BigTable 的數據模型與 Amazon Dynamo 的完全分布式的架構于一身。數人云只需要簡單幾個步驟,就可以完成Cassandra集群的部署,快一起來看看吧。
Cassandra 在2007年 由 非死book 開發,并于2009年成為 Apache 的孵化項目。Cassandra 的主要特點就是它不是一個數據庫,而是由一堆數據庫節點共同構成的一個分布式網絡服務,對 Cassandra 的一個寫操作,會被復制到其他節點上去,對 Cassandra 的讀操作,也會被路由到某個節點上面去讀取。對于一個 Cassandra 群集來說,擴展性能是比較簡單的事情,只管在群集里面添加節點就可以了。由于它良好的可擴展性,被 Digg、推ter 等知名網站所采納,成為了一種流行的分布式結構化數據存儲方案。
接下來,讓我們來體驗一下用數人云來部署 Cassandra 集群吧。
部署之前,我們要在 Docker 環境下制作 Cassandra 的 Docker image,并推送至可訪問的 Docker Registry。寫好配置文件 docker-entrypoint.sh 和 Dockerfile,創建并上傳 Docker image 之后,即可開始部署 Cassandra 集群。
第一步建立集群
請參見 “創建/刪除集群” (詳見文章底部鏈接)來創建您的集群。
創建集群的實例可以參考數人云文檔第一個應用-2048,若要部署 Cassandra 集群,需至少3個 Slave 節點。
注意:本實例至少需要一個內部代理,以便進行 Cassandra 集群的服務發現。
第二步發布應用
接下來,通過數人云創建應用。
新建 Cassandra 應用:
應用名稱:cassandra選擇集群:your-cluster
鏡像地址:index.shurenyun.com/cassandra
鏡像版本:2.2.4
網絡模式:HOST 模式
選擇主機:(選擇3臺主機)
添加目錄:主機目錄:/var/lib/cassandra 容器目錄:/var/lib/cassandra
選擇容器規格: CPU:1 內存:2048 MB
容器個數:3,選中"1容器1主機" </pre>
高級設置:
添加應用地址:端口:9024,類型:對內 TCP,映射端口:9024
端口:9160,類型:對內 TCP,映射端口:9160
添加環境變量:
CASSANDRA_SEEDS=ip1,ip2,ip3(3臺主機的 IP,以逗號分隔)
HEAP_NEWSIZE=300m
MAX_HEAP_SIZE=2g</pre>
注1:CASSANDRA_SEEDS:Cassandra 集群的種子節點地址;這個選項可以設置多個值,即 Cassandra 集群中有多個種子節點,集群中所有的服務器在啟動的時候,都將于 seed 節點進行通信,從而獲取集群的相關信息;這里選擇3臺主機作為 seed 節點;
注2:Cassandra 啟動需要足夠的資源,建議 CPU 數最小為1,內存最低2G;
注3:Cassandra 節點間需要通信,所以選擇 HOST 模式部署,避免端口隱射導致而節點間無法通信;
注4:如果對 Cassandra 集群有大致的規劃,可以在選擇主機處選擇所需數量的主機;應用發布后,可以在所選主機的數量范圍內,自由伸縮 Cassandra 節點數量。
第三步測試
等待應用部署完成,登陸一臺集群中的測試機,通過以下指令,用 cqlsh 連接 Cassandra 集群:
sudo docker run -it --rm index.shurenyun.com/cassandra:2.2.4 cqlsh 10.3.10.39其中,請將10.3.10.39換成你的集群的內部代理 IP;
若連接成功,輸入以下代碼:
CREATE KEYSPACE testWITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'dc1' : 3 } AND DURABLE_WRITES = false;
SELECT * FROM system.schema_keyspaces;</pre>
若看到名為 test 的 keyspace 已經添加成功,如下圖所示:
![]()
恭喜,現在你的 Cassandra 集群已經正常運作了!
來自: http://dockone.io/article/993