如何安装 Apache CentOS 中的 Cassandra

一、简介

卡桑德拉 是一个开源分布式数据库管理系统,具有广泛的列存储和 NoSQL 数据库,可以跨许多商品服务器处理大量数据,而不会出现单点故障。 它是由 Apache 软件基础,​​用 Java 编写。 在本文中,我们将逐步介绍在 CentOS 7 Linux 中安装 Cassandra 的过程。

2. 先决条件

下面给出的所有命令都应该运行为 root 或者 sudo 用户。

2.1. 安装 Python 2.7

在 CentOS 7 上,预装了 Python 2.7。 如果由于某种原因丢失,您可以使用以下命令安装它:

# yum -y install python
# python --version
Python 2.7.5

2.2. 安装 Java

使用以下命令安装最新版本的 Java 8 并验证安装。

# yum install java-1.8.0-openjdk-devel
# java -version

样本输出:

openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

3.如何安装Cassandra

首先,让我们添加 Cassandra 存储库。 为此,请创建一个名为 cassandra.repo 在下面 /etc/yum.repos.d/ 目录:

# vi /etc/yum.repos.d/cassandra.repo

在其中添加以下行:

[cassandra]
name=Apache Cassandra
baseurl=https://www.apache.org/dist/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.apache.org/dist/cassandra/KEYS

ESC键 键和类型 :wq 保存文件并 close 它。

验证是否添加了 Cassandra 存储库。 下面的命令将确保已安装和启用的存储库:

# yum repolist
列出启用的 yum 存储库

添加存储库后,运行以下命令在您的 CentOS 系统中安装 Cassandra:

# yum -y install cassandra

启用并启动 Cassandra 服务:

# systemctl enable cassandra
cassandra.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig cassandra on
# systemctl start Cassandra

确保 Cassandra 的状态:

# systemctl status cassandra
检查 Cassandra 状态

使用以下命令获取集群的详细信息,例如它的条件、负载和 ID:

# 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  69.08 KiB  16      100.0%            bf2df7a9-54bc-41c9-8c6c-0b9322d10e71  rack1
查看集群详细信息查看集群详细信息

在输出中,

  • 联合国 – 向上和正常
  • 地址 – 节点的 IP 地址
  • 加载 – 排除snapshots子目录中的所有内容后,Cassandra数据目录下的文件系统数据量。 每 90 秒更新一次。
  • 代币 – 已分配给节点的令牌数。
  • 拥有 – 节点拥有多少数据; 一个节点可以拥有环的 33%,但如果复制因子为 3,则显示 100%。
  • 主机 ID – 主机的网络 ID
  • 架子 – 节点所在的机架。

4. Cqlsh – Cassandra 的 CLI

cqlsh 是一个命令行界面,用于利用 CQL 连接 Cassandra(Cassandra 查询语言)。 它包含在每个 Cassandra 包中,可以在 cassandra 可执行文件旁边找到 bin/ 目录。 Python 原生协议驱动用于实现 cqlsh,它连接到单个节点。

要启动 Cqlsh,请运行:

# cqlsh

样本输出:

Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>
启动 Cqlsh启动 Cqlsh

5. CQL 示例命令

5.1。 创建密钥空间

在 Cassandra 中,键空间用作数据容器,类似于关系数据库管理系统 (RDMBS) 中的数据库

cqlsh> CREATE KEYSPACE IF NOT EXISTS OsTechNix WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 };
cqlsh>

使用以下命令检查系统中的键位。

cqlsh> SELECT * FROM system_schema.keyspaces;
检查键空间检查键空间

要显示所有键空间,请运行:

cqlsh> desc keyspaces;

将列出集群上的所有键空间:

ostechnix  system_auth         system_schema  system_views
system     system_distributed  system_traces  system_virtual_schema
显示所有键空间显示所有键空间

5.2. 创建表并插入示例数据

您可以使用 CREATE TABLE 像我们通常在 RDBMS 中所做的那样,为每一列定义数据类型的语句。 数据存储在具有列行的 CQL 表中,与 SQL 定义非常相似。

您必须定义“主键”和其他数据字段才能创建表。 按照下面的 example 用于创建表。

cqlsh> CREATE TABLE ostechnix.sample_table ( id UUID PRIMARY KEY, name text, birthday timestamp, nationality text, weight text, height text );
cqlsh>

使用 INSERT 向表中插入简单数据的语句 ostechnix.sample_table 我们在上面创建的。 在下面这个 example,将两条记录添加到表中。

cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a803e2, 'KARTHICK', 'Indian');
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality, weight) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a804e3, 'MOHAN', 'Indian', '85');

5.3. 查询表

使用 SELECT 语句从表中返回一行或多行。

cqlsh> SELECT * FROM ostechnix.sample_table;
查询表查询表

这里, * 返回表中的所有数据。

cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight="85";

样本输出:

InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING"
cqlsh>

Cassandra 将不会运行未从 ‘ 中的主键中为所有列指定值的查询where‘ 子句,并将发出上述错误警报以使用 'ALLOW FILTERING'.

这个错误的原因是如果完整的分区键没有包含在 Cassandra 中,将无法识别包含所需结果的节点。 WHERE 条款。 因此,Cassandra 将不得不扫描每个节点上的整个数据集,以确保它已识别出相关数据。

cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight="85" ALLOW FILTERING;
从表中过滤项目从表中过滤项目

6.总结

在本文中,我们介绍了 Cassandra 安装过程和一些示例 CQL 命令。 我们将在接下来的文章中深入探讨 Cassandra 操作。

资源: