歡迎訪問我的GitHub
https://github.com/zq2599/blog_demos
內容:所有原創文章分類匯總及配套源碼,涉及Java、Docker、Kubernetes、DevOPS等;
關於cassandra3集群部署
通常情況下的cassandra3集群部署操作如下:
- 安裝JDK;
- 設置JDK環境變量;
- 創建運行cassandra服務的群組和賬號;
- 安裝cassandra;
- 設置cassandra環境變量;
- 設置cassandra參數;
- 設置cassandra日志目錄和文件目錄;
上述操作要在每台機器執行,手動操作較為費時,因此用ansible來完成上述所有步驟,除了省事兒,還減少了操作失誤的概覽;
關於ansible部署
- ansible是常用的運維工具,可以大幅度簡化整個部署過程;
- 接下來使用ansible完成部署工作,如果您想了解ansible,請參考《ansible2.4安裝和體驗》;
- 部署操作如下圖所示,在一台安裝了ansible的電腦上運行腳本,由ansible遠程連接到三台CentOS7.7的服務器上,完成部署工作:
軟件版本
本次實戰的軟件版本信息如下:
- ansible電腦操作系統:CentOS Linux release 7.7.1908
- cassandra服務器操作系統:CentOS Linux release 7.7.1908
- cassandra版本:3.11.6
- jdk:1.8.0_191
材料准備
ansible遠程操作最重要的是提前把材料准備好,本次實戰一共需要如下7文件(稍后有下載地址):
- ansible.cfg:ansible配置文件;
- hosts:保存了三台cassansra服務器信息;
- cluster-3-nodes.yml:ansible腳本,即playbook文件,里面是整個安裝部署的邏輯;
- vars-cluster-3-nodes.yml:ansible腳本用到的變量配置信息,例如JDK文件名,cassandra文件名等;
- cassandra.yaml:cassandra配置文件,我從安裝包里取出來做了些修改(幾個和目錄有關的配置,被我從注釋狀態改成了生效狀態)
- apache-cassandra-3.11.6-bin.tar.gz:cassandra官方安裝包;
- jdk-8u191-linux-x64.tar.gz:jdk8的官方安裝包;
所有材料的下載地址
- 從1到5的內容可以在我的GitHub下載,倉庫地址:https://github.com/zq2599/blog_demos ,在倉庫的playbooks/cassandra3目錄下,有個名為cluster-3-nodes文件夾,如下圖紅框所示,這里面有那五個文件:
- apache-cassandra-3.11.6-bin.tar.gz:在官方下載:http://ftp.kddilabs.jp/infosystems/apache/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz
- jdk-8u191-linux-x64.tar.gz:Oracle官網可下,也可以在csdn下載(不用積分),地址:https://download.csdn.net/download/boling_cavalry/12098987
文件擺放位置
- 登錄ansible電腦,在家目錄創建名為palybooks的目錄,命令是:mkdir ~/playbooks
- 上面的七個文件中,1到4放入playbooks目錄;
- playbooks目錄下新建名為files的目錄,將5到7放進去;
- 最終七個文件的擺放位置如下圖:
修改配置
- cassandra服務器的IP地址、賬號、密碼等需要修改成您自己那邊的信息,請修改hosts文件中的相關內容,如下圖:
- cassandra集群的seed配置是其中兩台機器的IP地址,這個信息在vars-cluster-3-nodes.yml,請您改成自己機器的IP地址,如下圖黃框所示:
- 如果您的集群名稱、jdk版本、cassandra版本和我這里不同,都可以在vars-cluster-3-nodes.yml中修改;
- 第一次ssh連接到cassandra機器時會有提示要求輸入"Yes",為了避免這種情況出現在ansible連接cassandra機器的時候,建議先手動連接一次,這樣后面就不再出現提示了,如下圖:
准備完畢,可以開始部署了;
部署
- 在playbooks目錄下執行ansible-playbook cluster-3-nodes.yml
- 等待大約5分鍾左右,如果控制台沒有報錯,整個安裝過程完成;
- 如果有報錯,請按照錯誤提示做好處理再重復執行ansible-playbook cluster-3-nodes.yml,該命令可以反復多次執行;
啟動
- 部署的時候會創建名為cassandra的群組,以及名為cassandra的賬號;
- 以cassandra賬號分別SSH登錄三台cassandra機器,密碼是888888
- 登錄cassandra機器后,在任意位置執行命令cassandra,即可啟動cassandra服務;
- 等待大約幾分鍾,服務初始化、構建集群成功:
- 在三台機器的任意目錄下執行命令nodetool status,查看集群情況:
驗證
- 在任意一台cassandra機器上,cqlsh進入交互模式后,執行以下操作:
- 創建一個springboot應用,訪問上面新建的student表,如下圖紅框所示,應用啟動時連接cassandra成功:
- springboot應用中有個根據名稱查找記錄的web接口,如下圖,可以查到數據庫中的記錄:
- 上面的springboot應用源碼已上傳到GitHub,倉庫地址:https://github.com/zq2599/blog_demos ,在倉庫的cassandrahelloworld目錄下,如下圖紅框所示:
至此,cassandra集群從部署到驗證已經操作完成,希望能給您一些參考;
歡迎關注公眾號:程序員欣宸
微信搜索「程序員欣宸」,我是欣宸,期待與您一同暢游Java世界...
https://github.com/zq2599/blog_demos