创建一个数据库管理员用户:
使用 Cassandra 默认用户名/密码连接到 cqlsh 提示符。
# cqlsh -u cassandra -p cassandra Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.7 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cassandra@cqlsh>
通过执行以下命令创建一个数据库管理员用户。
cassandra@cqlsh> CREATE ROLE jackli WITH PASSWORD = 'JackLi@1234' AND SUPERUSER = true AND LOGIN = true;
从 cqlsh 提示符退出。
cassandra@cqlsh> exit
再次以新管理员用户身份连接到 cqlsh。
# cqlsh -u jackli -p JackLi@1234 Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.7 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. jackli@cqlsh>
为了更好的安全性,始终建议删除/禁用默认用户。
因此,撤销 cassendra 用户的管理员角色和登录权限。
jackli@cqlsh> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;
撤销 cassendra 用户的所有权限。
jackli@cqlsh> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
将所有权限授予新的管理员用户。
jackli@cqlsh> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO jackli;
从 cqlsh 提示符退出。
jackli@cqlsh> exit
Apache Cassandra 已配置。
配置 Apache Cassandra 安全性
Apache Cassandra 的配置文件位于 /etc/cassandra/conf 目录中。
在修改原始配置文件之前对其进行备份是一种安全的做法。
因此,创建原始 cassandra.yaml 配置文件的副本,如下所示。
# cd /etc/cassandra/conf/ # cp cassandra.yaml cassandra.yaml.bkp
现在,使用 vim 文本编辑器编辑此文件。
# vi /etc/cassandra/conf/cassandra.yaml
在此文件中找到以下参数。
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
并按如下方式更新它们的值。
authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0
重新启动 Cassandra 服务以使更改生效。
# systemctl restart cassandra.service
在 CentOS/RHEL 8 上安装 Apache Cassandra
Apache Cassandra 需要 JVM(Java 虚拟机)才能运行。
虽然我们可以在你的 Linux 服务器上显式安装 Java,但是如果你使用 dnf 命令安装 Cassandra 软件,它会自动安装所有需要的依赖项,包括 Java。
因此,我们应该使用 dnf 命令直接在 Linux 服务器上安装 Apache Cassandra。
# dnf install -y cassandra
cqlsh(Cassandra 查询语言shell)需要 Python 才能运行。
因此,我们还需要安装 Python。
目前,Apache Cassandra 仅与 Python 2.7 兼容。
因此,我们需要在 Linux 服务器上安装相同的内容。
# dnf install -y python2
Cassandra 服务是基于 SystemV 的,因此,我们必须使用旧命令来启用和启动它。
# service cassandra start Starting cassandra (via systemctl): [ OK ] # chkconfig cassandra on
验证 cassandra.service 的状态。
# systemctl status cassandra.service
使用 nodetool 命令来验证 Cassandra 集群的状态。
# nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 70.01 KiB 256 100.0% 7d916cdb-8065-42d0-97c0-c88c68b68aa3 rack1
安装 Cassandra 官方 Yum 存储库:
Apache 软件基金会为 Cassandra 软件的每个版本提供官方 yum 存储库。
我们需要添加 yum 存储库,如 Cassandra 下载页面所述。
使用 vim 文本编辑器创建一个 repo 文件。
# vi /etc/yum.repos.d/cassandra.repo
在此文件中添加以下指令。
[cassandra] name=Apache Cassandra baseurl=https://downloads.apache.org/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://downloads.apache.org/cassandra/KEYS
此处,311x 是 Apache Cassandra 的相应版本,例如:3.11.
如果你想安装任何其他版本的 Apache Cassandra,那么你应该相应地更新 repo 文件中的版本号。
为新安装的 yum 存储库构建 yum 缓存。
如果要求,请接受 GPG 密钥。
# dnf makecache CentOS-8 - AppStream 7.3 kB/s | 4.3 kB 00:00 CentOS-8 - Base 5.0 kB/s | 3.9 kB 00:00 CentOS-8 - Extras 162 B/s | 1.5 kB 00:09 Apache Cassandra 2.1 kB/s | 3.6 kB 00:01 Metadata cache created.
Apache Cassandra 3.11 yum 存储库已安装在 Linux 服务器上。