這篇文章給大家介紹如何利用DC/OS平臺(tái)部署Cassandra,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了富蘊(yùn)免費(fèi)建站歡迎大家使用!
Cassandra是一個(gè)開(kāi)源的分布式數(shù)據(jù)庫(kù),具有高度可用性,去中心化,高容錯(cuò)性和易于縮放等特點(diǎn),在當(dāng)今的大數(shù)據(jù)領(lǐng)域(比如SMACK)是非常流行的工具。在DC/OS中就支持Cassandra數(shù)據(jù)庫(kù),并且包含了非常多的功能,此外,DC/OS還提供了認(rèn)證的SMACK技術(shù)棧中其他軟件包,這無(wú)疑大大簡(jiǎn)化了大數(shù)據(jù)框架的安裝管理。
假設(shè)你已經(jīng)有了一個(gè)DC/OS集群,我們建議你首選安裝那些認(rèn)證的數(shù)據(jù)軟件包(參考這篇博客了解什么是認(rèn)證的軟件包),這里我們會(huì)安裝Cassandra軟件包。
準(zhǔn)備Cassandra安裝環(huán)境
使用默認(rèn)的配置參數(shù)安裝一個(gè)最小的Cassandra環(huán)境,需要DC/OS集群有3個(gè)私有節(jié)點(diǎn),Cassandra會(huì)在每個(gè)agent節(jié)點(diǎn)上部署一個(gè)Cassandra數(shù)據(jù)節(jié)點(diǎn)服務(wù),每個(gè)agent節(jié)點(diǎn)需要至少1.5個(gè)CPU和5G的內(nèi)存資源。
如果初始的默認(rèn)安裝無(wú)法滿足后續(xù)服務(wù)要求,可以通過(guò)DC/OS CLI命令來(lái)擴(kuò)展你的Cassandra數(shù)據(jù)節(jié)點(diǎn)個(gè)數(shù)。
安裝Cassandra
可以通過(guò)DC/OS的界面或者命令行來(lái)安裝Cassandra,唯一的不同點(diǎn)在于:通過(guò)界面安裝Cassandra服務(wù)后,還需要額外操作來(lái)安裝Cassandra子命令,而通過(guò)命令行安裝就不需要。
在DC/OS界面上,找到“Catalog”頁(yè)面,然后搜索查找“Cassandra”軟件包,點(diǎn)選Cassandra圖標(biāo),然后點(diǎn)擊安裝頁(yè)面那個(gè)紫色的按鈕“Review&Run”開(kāi)始安裝,可以在界面的“Service”頁(yè)面查看安裝進(jìn)度,然后在DC/OS命令行中通過(guò)如下命令安裝Cassandra子命令:
dcos package install --cli cassandra
或者,你也可以直接通過(guò)DC/OS命令行安裝Cassandra:
dcos package install cassandra
然后用cassandra子命令查看安裝進(jìn)度:
dcos cassandra plan show deploy
操作Cassandra集群
這里我們用到2個(gè)Cassandra子命令:describe和endpoints,這兩個(gè)命令會(huì)返回Cassandra集群的一些詳細(xì)信息。
dcos cassandra describe命令會(huì)以json格式返回cassandra集群的配置信息,節(jié)點(diǎn)信息和服務(wù)信息,如下:
dcos cassandra endpoints命令將返回Cassandra集群的網(wǎng)絡(luò)信息。包括每個(gè)數(shù)據(jù)節(jié)點(diǎn)的ip地址和DNS,以及Cassandra用于負(fù)載均衡的VIP信息:
你可以通過(guò)任意數(shù)據(jù)節(jié)點(diǎn)的dns信息,通過(guò)Cassandra的docker容器連接到Cassandra集群,然后通過(guò)cassandra查詢語(yǔ)句來(lái)查詢數(shù)據(jù),創(chuàng)建表等操作。
docker run -it cassandra:3.0.7 cqlsh node-0-server.cassandra.autoip.dcos.thisdcos.directory
多個(gè)Cassandra集群
本章節(jié)會(huì)介紹如何在一個(gè)DC/OS集群上部署多個(gè)Cassandra集群。
如果要部署多個(gè)Cassandra集群,那么必須確保這些集群的服務(wù)名字是唯一的,比如將多個(gè)Cassandra集群的名字命名為:Cassandra, Cass, CassDev, CassTest, CassProd等等。
安裝多個(gè)Cassandra集群最簡(jiǎn)單的方法就是使用DC/OS的虛擬網(wǎng)絡(luò),它可以有效防止端口沖突,但默認(rèn)安裝并沒(méi)有啟用DC/OS虛擬網(wǎng)絡(luò)??梢酝ㄟ^(guò)勾選Cassandra安裝界面中的“VIRTUAL_NETWORK_ENABLED”復(fù)選框來(lái)使用DC/OS虛擬網(wǎng)絡(luò)
當(dāng)然了,你也可以在不使用DC/OS虛擬網(wǎng)絡(luò)的情況下安裝多個(gè)Cassandra集群,不過(guò),你可能需要手動(dòng)檢查所有默認(rèn)的網(wǎng)絡(luò)設(shè)置,以確保沒(méi)有沖突。
Cassandra集群管理
本章節(jié)將會(huì)介紹4個(gè)用于Cassandra管理的子命令。
擴(kuò)展集群
為Cassandra集群增加節(jié)點(diǎn)是一個(gè)非常常用的操作,在DC/OS 1.10中,用如下命令為Cassandra集群進(jìn)行擴(kuò)容:
dcos cassandra update start --options=config.json
在config.json配置文件中,將“nodes”—“count”字段設(shè)置為擴(kuò)展后節(jié)點(diǎn)個(gè)數(shù)即可,如下:
{
"nodes": {
"count": 5
}
}
更改配置
更改Cassandra集群配置使用的還是dcos cassandra update start命令,如下:
dcos cassandra update start --options=config.json
你可以更改集群的如下配置信息:log_level, backup_restore_strategy, placement_constraint, concurrent_writes, and concurrent_reads
升級(jí)
升級(jí)操作同樣還是由update start這個(gè)子命令來(lái)完成的,通過(guò)如下命令來(lái)制定升級(jí)的版本:
dcos cassandra update start —package-version=""
該命令會(huì)在所有的Cassandra節(jié)點(diǎn)上進(jìn)行滾動(dòng)升級(jí)操作。通過(guò)如下命令查看當(dāng)前可用版本:
dcos cassandra update package-versions
備份和恢復(fù)
Cassandra集群的備份和恢復(fù)操作,分別有如下兩條命令實(shí)現(xiàn):
dcos cassandra plan start backup
dcos cassandra plan start backup
在啟動(dòng)備份之前,您需要在AWS或Azure中配置制定用于存儲(chǔ)備份數(shù)據(jù)的容器。閱讀災(zāi)難恢復(fù)一文了解更多信息。文章鏈接:https://docs.mesosphere.com/services/cassandra/2.0.3-3.0.14/disaster-recovery/。
卸載Cassandra集群
卸載Cassandra是個(gè)相對(duì)簡(jiǎn)單的操作,對(duì)于默認(rèn)的Cassandra集群使用如下命令進(jìn)行卸載操作:
dcos package uninstall cassandra --app-id=/cassandra
為了確保Cassandra被完全卸載,所占有的資源都被釋放掉,我們還需要清理zookeeper中殘留數(shù)據(jù)以及一些可能還被“預(yù)留”的資源,在任意master節(jié)點(diǎn),執(zhí)行如下操作即可:
sudo docker run mesosphere/janitor /janitor.py -r cassandra-role -p cassandra-principal -z dcos-service-cassandra
關(guān)于如何利用DC/OS平臺(tái)部署Cassandra就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。