Cassandra集群搭建


1.Cassandra介紹


Cassandra是一套開源分布式NoSQL數據庫系統。它最初由Facebook開發,用於儲存收件箱等簡單格式數據。NoSQl數據庫分為4大類,Key-value類型、列存儲型、文檔類型、圖形(Graph)等,而Cassandra為列存儲型。
Cassandra的特點:

彈性可擴展性 - Cassandra是高度可擴展的; 它允許添加更多的硬件以適應更多的客戶和更多的數據根據要求。
數據存儲靈活 - Cassandra適應所有可能的數據格式,包括:結構化,半結構化和非結構化。它可以根據您的需要動態地適應變化的數據結構。
便捷的數據分發 - Cassandra通過在多個數據中心之間復制數據,可以靈活地在需要時分發數據。
快速寫入 - Cassandra被設計為在廉價的商品硬件上運行。 它執行快速寫入,並可以存儲數百TB的數據,而不犧牲讀取效率。


2. 准備


1.CentOS x64系統至少3台(可以用虛擬機練習)
2.Java運行環境
3.Cassandra安裝包
我這里選的是cassandra-3.11.6
下載鏈接wget https://mirror.bit.edu.cn/apache/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz

3.集群搭建


Cassandra選擇了無中心的P2P架構,網絡中的所有節點都是對等的,它們構成了一個環,節點之間通過Gossip協議每秒鍾和至多三個節點交換一次數據,這樣每個節點都擁有其它所有節點的信息,包括位置、狀態等。為了保證數據交換的准確性,所有的節點必須使用同一份集群列表,這樣的節點又被稱作seed節點。
本文將使用4台虛擬機搭建集群
ip分別為:

192.168.3.40
192.168.3.41
192.168.3.42
其中將192.168.3.40 和 92.168.3.41作為seed(種子)節點

(1).搭建Java運行環境
同kafka安裝一樣,該集群已經安裝完畢

 

(2)安裝Cassandra

useradd cassandra
tar -zxvf apache-cassandra-3.11.6-bin.tar.gz
mv apache-cassandra-3.11.6 /home/cassandra/cassandra
chown cassandra:root /data/cassandra -R
mkdir -p  /data/cassandra/data
mkdir -p /data/cassandra/commitlog
mkdir -p /data/cassandra/saved_caches

vi /home/cassandra/cassandra/conf/cassandra.yaml編輯cassandra配置文件

配置下配置項
#集群名稱
cluster_name: ‘ssyx001’
#數據存儲的目錄,這里按照自己的路徑配置,不寫默認為/var/lib/cassandra/data,這項可以有多個目錄分行寫
data_file_directories:
- /data/cassandra/data
#提交日志存放目錄
commitlog_directory: /data/cassandra/commitlog
#緩存目錄
saved_caches_directory: /data/cassandra/saved_caches
以上三個目錄配置項,可以自己創建文件夾,自行配置

#種子節點 這里我使用192.168.3.40和192.168.3.41服務器作為種子節點,ip中間使用逗號隔開

seeds: “192.168.3.40,192.168.3.41”

#監聽地址 這項配置當前服務器ip,rpc_address 和 listen_address一樣填寫當前服務器ip
listen_address:$ip
rpc_address:$ip
以上是基礎配置,其他項配置參考cassandra配置詳解
另兩台服務器,也是按同樣方法配置,注意的是 listen_address, rpc_address 這兩項填寫該台服務器地址,data_file_directories,commitlog_directory ,commitlog_directory 填寫的目錄需要提前創建好。

4.啟動集群

 

cat << EOF > /etc/systemd/system/cassandra.service
[Unit]
Description=Cassandra Server Service
After=network.service
 
[Service]
Type=simple
Environment=JAVA_HOME=/opt/java1.8
 
PIDFile=/var/run/cassandra.pid
User=cassandra
ExecStart=/home/cassandra/cassandra/bin/cassandra -f -p /var/run/cassandra.pid
StandardOutput=journal
StandardError=journal
LimitNOFILE=100000
LimitMEMLOCK=infinity
LimitNPROC=32768
LimitAS=infinity
 
[Install]
WantedBy=multi-user.target
EOF
systemctl start cassandra
systemctl enable cassandra

 

#注意先啟動種子機器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM