Apache Cassandra 是一種高度可擴展、高效能的分散式資料庫,旨在處理跨多個商用伺服器的大量數據,提供高可用性且無單點故障。它以其對跨多個資料中心的叢集的強大支援而聞名,非同步無主複製可實現低延遲和操作簡單性。 Cassandra 非常適合需要高寫入吞吐量、容錯和線性可擴展性的應用程式。
以下指南將示範使用命令列命令在 Rocky Linux 9 或 8 上安裝 Apache Cassandra 的步驟。此過程涉及設定適當的儲存庫並配置系統,以確保分散式資料庫環境的最佳效能和可靠性。
在安裝 Apache Cassandra 之前更新 Rocky Linux 系統
首先,在安裝 Apache Cassandra 之前,最好確保所有系統軟體包都是最新的,以避免安裝 NoSQL 資料庫時出現任何潛在問題。
在終端機中,執行以下命令並升級所有未完成的軟體包。
sudo dnf upgrade --refresh
導入 Apache Cassandra 儲存庫
第一步涉及導入 Apache Cassandra 的儲存庫。幸運的是,您可以使用單一命令來完成此操作。本教學將展示如何匯入 5.0、4.0 或 4.1 分支。由於 3.xx 分支即將結束,本教學將不包含新增這些分支的說明。
4.0 Apache Cassandra RPM 導入
sudo tee /etc/yum.repos.d/cassandra-4.0.repo<<EOF
[cassandra]
name=Apache Cassandra 4.0
baseurl=https://redhat.cassandra.apache.org/41x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF
4.1 Apache Cassandra RPM 導入
sudo tee /etc/yum.repos.d/cassandra-4.1.repo<<EOF
[cassandra]
name=Apache Cassandra 4.1
baseurl=https://redhat.cassandra.apache.org/41x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF
5.0 Apache Cassandra RPM 導入
sudo tee /etc/yum.repos.d/cassandra-5.0.alpha.repo<<EOF
[cassandra]
name=Apache Cassandra 5.0
baseurl=https://redhat.cassandra.apache.org/50x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF
透過 DNF 指令安裝 Apache Cassandra
您可以使用以下命令安裝 Cassandra;儲存庫已導入。
sudo dnf install cassandra -y
透過執行以下命令確認安裝的版本。
cassandra -v
請注意,如果您在匯入 GPG 金鑰時看到下列錯誤。
Key import failed (code 2). Failing package is: cassandra-4.1~alpha1-1.noarch
GPG Keys are configured as: https://www.apache.org/dist/cassandra/KEYS
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
變更加密策略並將策略設為 LEGACY。
sudo update-crypto-policies --set LEGACY
有時,您可能需要重新啟動才能成功進行此變更。我發現你不需要,但建議這樣做。
reboot
建立 Apache Cassandra Systemd 服務
安裝完成後,需要建立systemd服務。再說一次,這是一個簡單的任務;複製並貼上以下命令以建立文件。
sudo tee /etc/systemd/system/cassandra.service<<EOF
[Unit]
Description=Apache Cassandra
After=network.target
[Service]
Type=simple
PIDFile=/var/run/cassandra/cassandra.pid
User=cassandra
Group=cassandra
ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid
Restart=always
[Install]
WantedBy=multi-user.target
EOF
您必須重新載入守護程序才能開始使用 Cassandra 服務,並且不能跳過此步驟。
sudo systemctl daemon-reload
現在,啟動 Cassandra 服務。
sudo systemctl start cassandra
接下來,檢查 Cassandra 的 systemctl 狀態以確保沒有錯誤。
systemctl status cassandra
或者,您可以使用下列命令在啟動電腦或伺服器時啟用 Cassandra 服務自動啟動。
sudo systemctl enable cassandra
在 Rocky Linux 上安裝 Apache Cassandra 用戶端 (cqlsh)
安裝Python
在安裝 Cassandra 用戶端之前,請確保 Python 在您的系統上可用。 Apache Cassandra 的客戶端, cqlsh
,是基於Python的,使Python成為先決條件。透過執行以下命令在 Rocky Linux 上安裝 Python:
sudo dnf install python3 -y
安裝畫中畫
接下來,安裝Python的套件管理器PIP,用於管理Python套件。 PIP 對於安裝 Cassandra Python 驅動程式至關重要。如果您的系統上尚未安裝 PIP,請透過執行以下命令來新增它:
sudo dnf install python3-pip -y
安裝 Cassandra Python 驅動程式
Cassandra Python 驅動程式是必要的 cqlsh
連接到 Cassandra 資料庫。此驅動程式支援客戶端和資料庫之間的通訊。使用 PIP 和以下命令安裝驅動程式:
pip install cassandra-driver
安裝 cqlsh
滿足先決條件後,您現在就可以安裝了 cqlsh
。此命令列介面允許與 Apache Cassandra 交互,使您能夠執行查詢和管理資料庫。安裝 cqlsh
透過執行:
pip install cqlsh
最後,使用以下命令連接 cqlsh。
cqlsh
成功連接的輸出範例:
[cqlsh 6.1.0 | Cassandra 4.1-alpha1 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>
配置 Apache Cassandra
設定和個人化 Cassandra 需要更改其設定檔並使用某些命令列實用程式。
設定基本配置
Cassandra 的主要設定檔位於 /etc/cassandra
。同時,日誌和資料目錄通常位於 /var/log/cassandra
和 /var/lib/cassandra
分別。
對於 JVM 等級的調整(例如堆疊大小),您可以查看 /etc/cassandra/conf/cassandra-env.sh
文件。在此文件中,您可以將補充 JVM 命令列參數新增至 JVM_OPTS
Cassandra 在啟動時讀取的變數。
使用 Apache Cassandra 啟用使用者身份驗證
在啟動使用者身份驗證之前,明智的做法是建立備份 /etc/cassandra/conf/cassandra.yaml
文件:
sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
隨後,打開 cassandra.yaml
文件:
sudo nano /etc/cassandra/conf/cassandra.yaml
在該文件中,您需要搜尋並修改這些參數:
authenticator: org.apache.cassandra.auth.PasswordAuthenticator
authorizer: org.apache.cassandra.auth.CassandraAuthorizer
roles_validity_in_ms: 0
permissions_validity_in_ms: 0
根據您的需求調整其他設置,如果它們顯示為註解掉,請確保取消註解它們。透過儲存文件完成編輯過程。
然後,重新啟動 Cassandra 以套用您的修改:
sudo systemctl restart cassandra
為 Apache Cassandra 新增管理超級用戶
現在啟動身份驗證後,必須配置使用者。使用 Cassandra Command shell 公用程序,使用預設使用者憑證登入:
cqlsh -u cassandra -p cassandra
透過替換啟動新的超級用戶 [username]
和 [yourpassword]
與你的具體情況:
CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
之後,登出並使用新的超級用戶詳細資料重新登入:
cqlsh -u username -p yourpassword
減少預設 Cassandra 帳號的提升權限:
ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;
REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
並且,向您的超級用戶授予完全權限:
GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
透過註銷來結束本節。
自訂控制台配置
Cassandra Shell 可以根據您的需求進行客製化。它從以下位置讀取其配置 cqlshrc
文件中找到 ~/.cassandra
目錄。提供有關可能設定的見解的範例文件位於 /etc/cassandra/conf/cqlshrc.sample
.
首先複製此範例檔案:
sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
調整 cqlshrc
文件的權限:
sudo chmod 600 ~/.cassandra/cqlshrc
sudo chown $USER:$USER ~/.cassandra/cqlshrc
打開它進行編輯:
nano ~/.cassandra/cqlshrc
要使用超級用戶憑證自動登錄,請找到並編輯以下部分:
[authentication]
username = [superuser]
password = [password]
完成編輯後記得儲存。現在,當您登入 Cassandra shell 時,它將反映您的變更:
cqlsh
重命名集群
您可能想要重命名叢集以使系統更易於識別。透過登入來啟動 cqlsh
終端:
cqlsh
代替 [new_name]
使用您想要的叢集名稱:
UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
退出終端機並打開 /etc/cassandra/conf/cassandra.yaml
進一步編輯:
sudo nano /etc/cassandra/conf/cassandra.yaml
找到 cluster_name
變數並將其值替換為您選擇的名稱。儲存您的變更。
最後,清除 Cassandra 的系統快取:
nodetool flush system
重新啟動卡桑德拉:
sudo systemctl restart cassandra
當您登入 shell 時,它將顯示您選擇的叢集名稱。
驗證配置更改
進行配置變更後,最好確保它們生效並檢查 Cassandra 叢集的整體運作狀況。
叢集名稱驗證:重新登入時發布重新命名過程 cqlsh
殼:
cqlsh
提示現在應該顯示新設定的叢集名稱。
結論
在本指南中,我們逐步完成了在 Rocky Linux 上安裝 Apache Cassandra 的步驟,涵蓋版本 9 和 8。定期檢查更新,以保持 Cassandra 的良好性能和安全性。練習使用 Cassandra 以完全掌握其功能。深入研究、試驗,看看它如何改變您的資料管理。