CentOS7 部署 cassandra 叢集
阿新 • • 發佈:2019-06-29
環境
主機名 | Public IP | Cluster IP | 作業系統 | Cassandra 版本 |
---|---|---|---|---|
cassandra101 | 10.0.4.101 | 10.10.10.101 | CentOS7.6 | 3.0.18 |
cassandra102 | 10.0.4.102 | 10.10.10.102 | CentOS7.6 | 3.0.18 |
cassandra103 | 10.0.4.103 | 10.10.10.103 | CentOS7.6 | 3.0.18 |
各節點初始配置
- 關閉 selinux、防火牆
- 部署 java 執行環境
- 建立 cassandra 使用者
useradd -m cassandra
- 建立資料目錄
cd /var/lib mkdir -p cassandra/data1 #多個儲存磁碟可以建立多個數據儲存目錄 mkdir -p cassandra/hints #建議與資料磁碟分開 mkdir -p cassandra/commitlog #建議與資料磁碟分開 mkdir -p cassandra/saved_caches #建議與資料磁碟分開 chown -R cassandra.cassandra cassandra/
- 建立日誌目錄
cd /var/log mkdir -p cassandra chown -R cassandra.cassandra cassandra/
- 建立 pid 目錄
cd /run mkdir -p cassandra chown -R cassandra.cassandra cassandra/
- 增加 sysctl.conf 配置,執行 sysctl -p 生效
vm.max_map_count=1048576
- 安裝 jemalloc (推薦)
yum install jemalloc
- 建立檔案 /usr/lib/systemd/system/cassandra.service,內容如下
[Unit] Description=Cassandra Requires=network.service After=network.service [Service] Type=forking WorkingDirectory=/opt/cassandra Environment=JAVA_HOME=/opt/jre Environment=LOCAL_JMX=no PIDFile=/run/cassandra/cassandra.pid ExecStart=/opt/cassandra/bin/cassandra -p /run/cassandra/cassandra.pid User=cassandra Group=cassandra LimitNOFILE=65536 LimitNPROC=65536 LimitMEMLOCK=infinity SuccessExitStatus=143 [Install] WantedBy=multi-user.target
部署 Cassandra
- 登陸 cassandra101,下載 cassandra,解壓至 /opt/ 下
- 修改 /opt/cassandra/conf/cassandra.yaml
cluster_name: CassandraCluster hists_directory: /var/lib/cassandra/hints data_file_directories: - /var/lib/cassandra/data1 commitlog_directory: /var/lib/cassandra/commitlog saved_caches_directory: /var/lib/cassandra/saved_caches seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.10.10.101,10.10.10.102,10.10.10.103" listen_address: 10.10.10.101 rpc_address: 10.0.4.101
- 修改 /opt/cassandra/conf/logback.xml
sed -i 's,\${cassandra.logdir},/var/log,' /opt/cassandra/conf/logback.xml
- 修改 /opt/cassandra/conf/cassandra-env.sh
# 這裡我暫時關閉了 jmx 遠端驗證,否則需要手動建立 jmxremote.password 檔案 sed -i 's/jmxremote.authenticate=true/jmxremote.authenticate=false/' /opt/cassandra/conf/cassandra-env.sh
- 修改 cassandra 目錄的許可權
chown -R cassandra.cassandra cassandra/
- 打包 cassandra 目錄,部署到 cassandra102 和 cassandra103 的 /opt 下,並修改 cassandra.yaml
# cassandra102 listen_address: 10.10.10.102 rpc_address: 10.0.4.102 # cassandra103 listen_address: 10.10.10.103 rpc_address: 10.0.4.103
啟動叢集
- 啟動 cassandra 服務
systemctl daemon-reload systemctl start cassandra