Apache Cassandra
Apache Cassandra 是一个 NoSQL 多主数据库,具有线性可扩展性且没有单点故障。
安装
配置
systemd 单元
日志记录到 journald
该软件包默认将日志记录到 /var/log/cassandra/system.log
。要改为记录到 journald,您需要编辑该单元,并通过在 ExecStart
行中添加 -f
将服务设置为在前台运行,并将 Type 设置为 simple
,因为该进程将不再派生。
这也可以使用 systemd drop-in 文件完成
/etc/systemd/system/cassandra.service.d/override.conf
[Service] Type=simple ExecStart= ExecStart=/usr/bin/cassandra -p /run/cassandra/cassandra.pid -f
如果 Cassandra 正在运行,您将需要 drain,然后重启 Cassandra。
$ nodetool drain
cassandra.yaml
默认的 cassandra.yaml
中有大量文档。 当通过 cassandraAUR 软件包安装时,它位于 /etc/cassandra/cassandra.yaml
需要更改的基本配置项
设置集群的名称。 对于您打算在此集群中拥有的所有节点,这需要保持一致。
cluster_name: 'Test Cluster'
设置 Cassandra 将写入到的目录,下面是如果未设置将使用的默认值。 如果可能,请将其设置为仅用于存储 Cassandra 数据的磁盘
data_file_directories: - /var/lib/cassandra/data
对于第一个节点(种子节点),请确保在其种子中包含其 IP 地址,以及至少 1 个其他节点。 对于所有其他节点,请尝试在此集群中设置广泛的节点范围。 如果节点无法连接到此配置中列出的种子之一,则启动时将失败。
seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "192.168.1.53, 192.168.1.52"
根据 Cassandra 用于存储数据的磁盘类型 (ssd
或 spinning
) 设置此项
disk_optimization_strategy: ssd|spinning
这是 Cassandra 将侦听客户端连接的地址
listen_address: 192.168.1.51
这是此节点将通告自身的地址,确保您的客户端和节点都可以通过此地址访问此节点
broadcast_address: 192.168.1.51
这是用于 thrift 连接的地址,设置为 0.0.0.0
它将侦听所有接口,只要它为安全起见进行了防火墙保护,这就可以了
rpc_address: 0.0.0.0
故障排除
如果 Cassandra 无法作为服务运行,请尝试运行 Cassandra
$ cassandra
如果您收到以下错误
Improperly specified VM option 'ThreadPriorityPolicy=42' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
Cassandra 在 Java 8 和从 Cassandra 4.0.2 开始,也在 Java 11 上运行。 您将需要安装正确的Java 并使用 systemd drop-in 文件覆盖默认 JVM
/etc/systemd/system/cassandra.service.d/override.conf
[Service] Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk
如果此文件已存在,只需将 Environment 行添加到 [Service] 块中。