Cassandra 是一個高可靠的大規模分佈式存儲系統,是一個高度可伸縮的、一致的、分佈式的結構化 key-value 存儲方案,集 Google BigTable 的數據模型與 Amazon Dynamo 的徹底分佈式的架構於一身。數人云只須要簡單幾個步驟,就能夠完成Cassandra集羣的部署,快一塊兒來看看吧。html
Cassandra 在2007年 由 facebook 開發,並於2009年成爲 Apache 的孵化項目。Cassandra 的主要特色就是它不是一個數據庫,而是由一堆數據庫節點共同構成的一個分佈式網絡服務,對 Cassandra 的一個寫操做,會被複制到其餘節點上去,對 Cassandra 的讀操做,也會被路由到某個節點上面去讀取。對於一個 Cassandra 羣集來講,擴展性能是比較簡單的事情,只管在羣集裏面添加節點就能夠了。因爲它良好的可擴展性,被 Digg、Twitter 等知名網站所採納,成爲了一種流行的分佈式結構化數據存儲方案。docker
接下來,讓咱們來體驗一下用數人云來部署 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主機"
高級設置:性能
添加應用地址: 端口:9024,類型:對內 TCP,映射端口:9024 端口:9160,類型:對內 TCP,映射端口:9160 添加環境變量: CASSANDRA_SEEDS=ip1,ip2,ip3(3臺主機的 IP,以逗號分隔) HEAP_NEWSIZE=300m MAX_HEAP_SIZE=2g
注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 test WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'dc1' : 3 } AND DURABLE_WRITES = false; SELECT * FROM system.schema_keyspaces;
若看到名爲 test 的 keyspace 已經添加成功,以下圖所示:
恭喜,如今你的 Cassandra 集羣已經正常運做了!