在CentOS 7上搞定Cassandra 4.0.1单机部署:从JDK 11配置到服务脚本编写全流程

发布时间:2026/6/2 8:26:17

在CentOS 7上搞定Cassandra 4.0.1单机部署:从JDK 11配置到服务脚本编写全流程 CentOS 7环境下Cassandra 4.0.1企业级单机部署实战指南1. 环境准备与前置条件检查在CentOS 7系统上部署Cassandra 4.0.1前需要确保基础环境满足运行要求。不同于简单的测试环境生产级部署需要考虑系统参数调优和安全配置。硬件要求检查清单至少4核CPU推荐8核以上16GB内存JVM堆内存建议8-12GB100GB以上SSD存储根据数据量调整千兆网络接口首先更新系统基础组件sudo yum update -y sudo yum install -y epel-release关键系统参数调整# 禁用swap sudo swapoff -a sudo sed -i /swap/s/^/#/ /etc/fstab # 调整文件描述符限制 echo * soft nofile 100000 | sudo tee -a /etc/security/limits.conf echo * hard nofile 100000 | sudo tee -a /etc/security/limits.conf # 禁用透明大页 echo echo never /sys/kernel/mm/transparent_hugepage/enabled | sudo tee -a /etc/rc.local echo echo never /sys/kernel/mm/transparent_hugepage/defrag | sudo tee -a /etc/rc.local sudo chmod x /etc/rc.local2. JDK 11安装与优化配置Cassandra 4.0.1需要JDK 11支持推荐使用OpenJDK并进行针对性优化# 安装OpenJDK 11 sudo yum install -y java-11-openjdk java-11-openjdk-devel # 验证安装 java -versionJVM参数调优建议 在/etc/environment中添加以下变量export JAVA_HOME/usr/lib/jvm/java-11-openjdk export JVM_OPTS-Xms8G -Xmx8G -XX:UseG1GC -XX:MaxGCPauseMillis300对于生产环境建议根据实际负载调整GC参数-XX:ParallelRefProcEnabled -XX:G1HeapRegionSize8M -XX:InitiatingHeapOccupancyPercent40 -XX:ConcGCThreads43. Cassandra 4.0.1安装与目录规划推荐采用标准化目录结构便于后续维护# 创建专用用户和组 sudo groupadd cassandra sudo useradd -g cassandra cassandra # 规划目录结构 sudo mkdir -p /opt/cassandra/{bin,conf,data,commitlog,saved_caches,logs} sudo chown -R cassandra:cassandra /opt/cassandra下载并安装Cassandrawget https://archive.apache.org/dist/cassandra/4.0.1/apache-cassandra-4.0.1-bin.tar.gz tar xzf apache-cassandra-4.0.1-bin.tar.gz sudo mv apache-cassandra-4.0.1/* /opt/cassandra/关键目录权限设置sudo chown -R cassandra:cassandra /opt/cassandra sudo chmod 750 /opt/cassandra/{data,commitlog,saved_caches}4. 生产级配置调优修改/opt/cassandra/conf/cassandra.yaml关键参数存储配置data_file_directories: - /opt/cassandra/data commitlog_directory: /opt/cassandra/commitlog saved_caches_directory: /opt/cassandra/saved_caches网络与连接配置listen_address: $(hostname -I | awk {print $1}) rpc_address: $(hostname -I | awk {print $1}) native_transport_port: 9042内存与性能参数concurrent_reads: 32 concurrent_writes: 32 concurrent_counter_writes: 32 memtable_allocation_type: offheap_objects5. 系统服务集成与管理脚本创建Systemd服务文件/etc/systemd/system/cassandra.service[Unit] DescriptionApache Cassandra Afternetwork.target [Service] Usercassandra Groupcassandra EnvironmentJAVA_HOME/usr/lib/jvm/java-11-openjdk EnvironmentCASSANDRA_HOME/opt/cassandra ExecStart/opt/cassandra/bin/cassandra -f Restartalways LimitNOFILE100000 LimitMEMLOCKinfinity [Install] WantedBymulti-user.target服务管理命令# 重载服务配置 sudo systemctl daemon-reload # 启动服务 sudo systemctl start cassandra # 设置开机启动 sudo systemctl enable cassandra # 查看状态 sudo systemctl status cassandra6. 运维监控与故障排查基础监控命令# 查看节点状态 /opt/cassandra/bin/nodetool status # 查看集群信息 /opt/cassandra/bin/nodetool describecluster # 监控性能指标 /opt/cassandra/bin/nodetool tpstats日志分析技巧系统日志journalctl -u cassandra应用日志tail -f /opt/cassandra/logs/system.logGC日志分析添加JVM参数-Xlog:gc*:file/opt/cassandra/logs/gc.log常见问题处理# 端口冲突检查 netstat -tulnp | grep -E 9042|7000|7199 # 磁盘空间监控 df -h /opt/cassandra/data # 内存使用分析 top -u cassandra7. 安全加固建议基础安全措施配置防火墙规则sudo firewall-cmd --permanent --add-port7000/tcp # 节点间通信 sudo firewall-cmd --permanent --add-port9042/tcp # CQL接口 sudo firewall-cmd --reload启用认证修改cassandra.yamlauthenticator: PasswordAuthenticator authorizer: CassandraAuthorizer创建管理员账户/opt/cassandra/bin/cqlsh -u cassandra -p cassandra ALTER KEYSPACE system_auth WITH replication {class: SimpleStrategy, replication_factor: 1}; CREATE ROLE admin WITH PASSWORD ComplexPssw0rd AND SUPERUSER true AND LOGIN true;8. 备份与恢复策略快照备份# 创建快照 /opt/cassandra/bin/nodetool snapshot # 备份到远程存储 rsync -avz /opt/cassandra/data/*/snapshots/[timestamp] backup-server:/cassandra-backups/增量备份配置 在cassandra.yaml中启用incremental_backups: true恢复流程停止Cassandra服务清空数据目录拷贝快照文件到对应表目录执行nodetool refresh加载数据9. 性能调优实战关键JMX调优参数-Dcassandra.metricsReporterConfigFilemetrics.yaml -Dcom.sun.management.jmxremote.port7199 -Dcom.sun.management.jmxremote.authenticatefalse监控指标采集# 使用jmxtrans收集指标 wget https://github.com/jmxtrans/jmxtrans-agent/releases/download/jmxtrans-agent-1.2.6/jmxtrans-agent-1.2.6.jar创建配置文件jmxtrans-agent.xmljmxtrans-agent queries query objectNameorg.apache.cassandra.metrics:typeCache,* attributesHits,Requests resultAliascassandra.cache.#attribute#/ /queries /jmxtrans-agent10. 客户端连接与开发环境配置Python驱动安装pip install cassandra-driverJava客户端示例Cluster cluster Cluster.builder() .addContactPoint(your_server_ip) .withCredentials(username, password) .build(); Session session cluster.connect(keyspace_name);连接池配置建议basic.contact-points.0your_server_ip:9042 basic.load-balancing-policy.local-datacenterdatacenter1 basic.request.timeout10 seconds advanced.reconnect-on-inittrue

相关新闻