在 FreeBSD 中安装和配置 Cassandra
本文的目的是介绍如何在 FreeBSD 系统上安装和配置 Cassandra,以及如何使用基本的命令操作 Cassandra 数据库。
Cassandra 是一个分布式的、高可用的、可扩展的、无共享的数据库系统,它可以存储和处理大量的结构化、半结构化或非结构化的数据。Cassandra 的设计参考了 Google 的 Bigtable 和 Amazon 的 Dynamo,它使用了一致性哈希、列族模型、悲观复制、最终一致性等技术,使得它能够在多个数据中心或云平台上运行,提供高性能、高可靠性和容错性。
本文的目的是介绍如何在 FreeBSD 系统上安装和配置 Cassandra,以及如何使用基本的命令操作 Cassandra 数据库。本文假设您已经有了一台运行 FreeBSD 的服务器,且已经安装了 Java 环境。
先决条件
在开始安装和配置 Cassandra 之前,您需要确保您的系统满足以下条件:
- 您的 FreeBSD 系统版本是 12.2 或更高
- 您已经安装了 Java 8 或更高的版本,且已经设置了
JAVA_HOME
环境变量 - 您已经安装了
pkg
包管理工具,且已经更新了软件仓库 - 您已经拥有了
root
权限或sudo
权限
安装 Cassandra
要在 FreeBSD 上安装 Cassandra,您可以使用 pkg
命令从官方仓库中获取最新的 Cassandra 包。在终端中输入以下命令:
sudo pkg install cassandra
输入 y
确认安装,等待安装过程完成。安装完成后,您可以使用以下命令查看 Cassandra 的版本:
cassandra -v
您应该看到类似于以下的输出:
3.11.10
这表示您已经成功地安装了 Cassandra 3.11.10 版本。
配置 Cassandra
在开始配置 Cassandra 之前,您需要先停止 Cassandra 服务,以避免配置文件被覆盖。您可以使用以下命令停止 Cassandra 服务:
sudo service cassandra stop
接下来,您需要编辑 Cassandra 的配置文件,该文件位于 /usr/local/etc/cassandra/cassandra.yaml
。您可以使用您喜欢的文本编辑器打开该文件,比如 vi
或 nano
。在本文中,我们使用 vi
作为示例:
sudo vi /usr/local/etc/cassandra/cassandra.yaml
在配置文件中,您需要修改以下几个参数:
cluster_name
:这个参数指定了您的 Cassandra 集群的名称,您可以根据您的需要自定义该名称,比如MyCassandraCluster
。如果您有多个节点组成的集群,那么每个节点的cluster_name
必须相同。listen_address
:这个参数指定了您的 Cassandra 节点的 IP 地址,它用于与其他节点进行通信。您需要将该参数的值改为您的服务器的 IP 地址,比如192.168.1.100
。如果您只有一个节点,那么您可以将该参数的值改为localhost
。rpc_address
:这个参数指定了您的 Cassandra 节点的 IP 地址,它用于与客户端进行通信。您需要将该参数的值改为您的服务器的 IP 地址,比如192.168.1.100
。如果您只有一个节点,那么您可以将该参数的值改为localhost
。seed_provider
:这个参数指定了您的 Cassandra 集群的种子节点,它用于发现其他节点并加入集群。您需要将该参数的值改为您的种子节点的 IP 地址,比如192.168.1.100
。如果您只有一个节点,那么您可以将该参数的值改为localhost
。authenticator
:这个参数指定了您的 Cassandra 节点的认证方式,它用于控制客户端的访问权限。默认情况下,该参数的值是AllowAllAuthenticator
,这意味着任何客户端都可以访问 Cassandra 节点,不需要提供用户名和密码。为了提高安全性,您可以将该参数的值改为PasswordAuthenticator
,这意味着客户端需要提供正确的用户名和密码才能访问 Cassandra 节点。authorizer
:这个参数指定了您的 Cassandra 节点的授权方式,它用于控制客户端的操作权限。默认情况下,该参数的值是AllowAllAuthorizer
,这意味着任何客户端都可以执行任何操作,不需要检查权限。为了提高安全性,您可以将该参数的值改为CassandraAuthorizer
,这意味着客户端需要具有相应的权限才能执行操作。
修改完配置文件后,您需要保存并退出。然后,您可以使用以下命令启动 Cassandra 服务:
sudo service cassandra start
您可以使用以下命令检查 Cassandra 服务的状态:
sudo service cassandra status
您应该看到类似于以下的输出:
cassandra is running as pid 1234.
这表示您已经成功地启动了 Cassandra 服务。
设置初始密码
如果您将 authenticator
参数的值改为了 PasswordAuthenticator
,那么您需要设置初始密码,以便您能够使用 Cassandra 的命令行工具 cqlsh
登录 Cassandra 节点。默认情况下,Cassandra 提供了一个超级用户 cassandra
,其初始密码是 cassandra
。您需要使用以下命令登录 Cassandra 节点,并修改该超级用户的密码:
cqlsh -u cassandra -p cassandra
您应该看到类似于以下的输出:
Connected to MyCassandraCluster at 192.168.1.100:9042.
[cqlsh 5.0.1 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh>
这表示您已经成功地登录了 Cassandra 节点。接下来,您可以使用以下命令修改超级用户 cassandra
的密码,比如将其改为 mypassword
:
ALTER USER cassandra WITH PASSWORD 'mypassword';
您应该看到类似于以下的输出:
cassandra@cqlsh> ALTER USER cassandra WITH PASSWORD 'mypassword';
cassandra@cqlsh>
这表示您已经成功地修改了超级用户 cassandra
的密码。您可以使用以下命令退出 Cassandra 节点:
exit
操作 Cassandra
在本节中,我们将介绍如何使用 cqlsh
工具操作 Cassandra 数据库,包括启动、停止、重启、加载配置、登录、退出等。您可以使用以下命令启动 cqlsh
工具,并连接到 Cassandra 节点:
cqlsh -u cassandra -p mypassword
您需要提供正确的用户名和密码,否则您将无法连接到 Cassandra 节点。如果您成功地连接到 Cassandra 节点,您将看到类似于以下的输出:
Connected to MyCassandraCluster at 192.168.1.100:9042.
[cqlsh 5.0.1 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh>
在 cqlsh
工具中,您可以使用 Cassandra 查询语言(CQL)来执行各种操作,比如创建、修改、删除、查询数据。CQL 的语法类似于 SQL,但有一些不同之处。您可以使用 HELP
命令来查看 CQL 的语法和用法,比如:
cassandra@cqlsh> HELP CREATE KEYSPACE
您应该看到类似于以下的输出:
CREATE KEYSPACE <identifier>
WITH <properties>
[AND DURABLE_WRITES = <boolean>];
<properties> ::= REPLICATION = {'class':<string>, <property>:<value> (, <property>:<value>)*}
| REPLICATION = {'class':<string>}
| REPLICATION = <map>
<property> ::= 'replication_factor' | 'datacenters'
<value> ::= <string> | <integer>
Examples:
CREATE KEYSPACE Excelsior
WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 3};
CREATE KEYSPACE Excalibur
WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'DC1' : 1, 'DC2' : 2};
这表示您已经成功地查看了 CREATE KEYSPACE
命令的语法和用法。您可以使用类似的方式查看其他命令的语法和用法。
接下来,我们将演示如何使用 cqlsh
工具创建一个名为 test
的键空间(类似于 SQL 中的数据库),并在其中创建一个名为 users
的表(类似于 SQL 中的表),并插入、修改、删除、查询数据。您可以使用以下命令创建一个名为 test
的键空间,使用 SimpleStrategy
作为复制策略,设置复制因子为 1:
cassandra@cqlsh> CREATE KEYSPACE test WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1};
您应该看到类似于以下的输出:
cassandra@cqlsh> CREATE KEYSPACE test WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1};
cassandra@cqlsh>
这表示您已经成功地创建了一个名为 test
的键空间。您可以使用以下命令切换到 test
键空间:
cassandra@cqlsh> USE test;
您应该看到类似于以下的输出:
cassandra@cqlsh> USE test;
cassandra@cqlsh:test>
这表示您已经成功地切换到 test
键空间。您可以使用以下命令创建一个名为 users
的表,包含 id
、name
、age
、email
四个字段,其中 id
是主键:
cassandra@cqlsh:test> CREATE TABLE users (id int PRIMARY KEY, name text, age int, email text);
您应该看到类似于以下的输出:
cassandra@cqlsh:test> CREATE TABLE users (id int PRIMARY KEY, name text, age int, email text);
cassandra@cqlsh:test>
这表示您已经成功地创建了一个名为 users
的表。您可以使用以下命令插入一些数据到 users
表中,比如:
cassandra@cqlsh:test> INSERT INTO users (id, name, age, email) VALUES (1, 'Alice', 25, '[email protected]');
cassandra@cqlsh:test> INSERT INTO users (id, name, age, email) VALUES (2, 'Bob', 30, '[email protected]');
cassandra@cqlsh:test> INSERT INTO users (id, name, age, email) VALUES (3, 'Charlie', 35, '[email protected]');
您应该看到类似于以下的输出:
cassandra@cqlsh:test> INSERT INTO users (id, name, age, email) VALUES (1, 'Alice', 25, '[email protected]');
cassandra@cqlsh:test> INSERT INTO users (id, name, age, email) VALUES (2, 'Bob', 30, '[email protected]');
cassandra@cqlsh:test> INSERT INTO users (id, name, age, email) VALUES (3, 'Charlie', 35, '[email protected]');
cassandra@cqlsh:test>
这表示您已经成功地插入了三条数据到 users
表中。您可以使用以下命令查询 users
表中的所有数据:
cassandra@cqlsh:test> SELECT * FROM users;
您应该看到类似于以下的输出:
cassandra@cqlsh:test> SELECT * FROM users;
id | age | email | name
----+-----+-------------------+---------
1 | 25 | [email protected] | Alice
2 | 30 | [email protected] | Bob
3 | 35 | [email protected] | Charlie
(3 rows)
这表示您已经成功地查询了 users
表中的所有数据。您可以使用以下命令修改 users
表中的某些数据,比如将 id
为 1 的用户的 age
改为 26:
cassandra@cqlsh:test> UPDATE users SET age = 26 WHERE id = 1;
您应该看到类似于以下的输出:
cassandra@cqlsh:test> UPDATE users SET age = 26 WHERE id = 1;
cassandra@cqlsh:test>
这表示您已经成功地修改了 users
表中的某些数据。您可以使用以下命令删除 users
表中的某些数据,比如将 id
为 3 的用户删除:
cassandra@cqlsh:test> DELETE FROM users WHERE id = 3;
您应该看到类似于以下的输出:
cassandra@cqlsh:test> DELETE FROM users WHERE id = 3;
cassandra@cqlsh:test>
这表示您已经成功地删除了 users
表中的某些数据。您可以使用以下命令退出 cqlsh
工具:
exit
您应该看到类似于以下的输出:
cassandra@cqlsh:test> exit
$
这表示您已经成功地退出了 cqlsh
工具。
结论
本文介绍了如何在 FreeBSD 系统上安装和配置 Cassandra,以及如何使用 cqlsh
工具操作 Cassandra 数据库。您可以根据本文的内容,尝试在您的服务器上部署和使用 Cassandra,体验其强大的功能和性能。如果您想了解更多关于 Cassandra 的信息,您可以访问其官方网站或文档。