在CentOS 8 Linux上安装Apache Cassandra

时间:2020-02-23 14:32:16  来源:igfitidea点击:

如何在CentOS 8 Linux机器上安装Apache Cassandra? Apache Cassandra是一个免费的开源NoSQL数据库管理系统,旨在进行分布式和高度可用。 Cassandra可以在许多商品服务器上处理大量数据,而不会出现任何单点故障。

本教程将引导我们完成在CentOS 8上安装Cassandra的工作。完成安装后,请继续进行配置和调整Cassandra的工作,以与可用资源最少的机器一起使用。

Cassandra的特点

Cassandra提供了Cassandra查询语言(CQL),这是一种类似SQL的语言,
创建和更新数据库架构并访问数据。 CQL允许用户
使用以下命令在Cassandra节点群集中组织数据:

键空间:定义如何复制数据集,例如在哪个数据中心和多少个副本中。键空间包含表格。Table:定义分区集合的类型化架构。 Cassandra表可以在零停机时间内灵活地向表中添加新列。
表包含分区,分区包含列,分区。Partition:定义Cassandra中所有行必须具有的主键的必需部分。所有性能查询都在查询中提供分区键。行:包含由唯一主键标识的列的集合,该主键由分区键和可选的其他聚类键组成。列:具有一个类型且属于一行的单个数据。

Cassandra支持以下客户端驱动程序:JavaPythonRubyC/.NETNodejsPHPC ++ ScalaClojureErlangGoHaskellRustPerlElixirDart

在CentOS 8上安装Apache Cassandra

在CentOS 8上运行Cassandra需要Java。在撰写本文时,所需的Java版本是8. 如果要使用cqlsh,则需要最新版本的Python 2.7.

安装Java 8和Python:

sudo yum -y install epel-release python2 java-1.8.0-openjdk-devel

确认安装Java和Python。

$java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

$python2.7 --version
Python 2.7.16

在CentOS 8上安装Apache Cassandra

现在已经安装了Java和Python。现在让我们将Cassandra存储库添加到我们的CentOS系统中。

sudo tee  /etc/yum.repos.d/cassandra.repo <<EOF
[cassandra]
name=Apache Cassandra
baseurl=https://www.apache.org/dist/cassandra/redhat/311x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.apache.org/dist/cassandra/KEYS
EOF

使用以下命令安装Apache Cassandra。

sudo yum -y install cassandra

创建Cassandra服务。

sudo tee /etc/systemd/system/cassandra.service<<EOF
[Unit]
Description=Apache Cassandra
After=network.target

[Service]
PIDFile=/var/run/cassandra/cassandra.pid
User=cassandra
Group=cassandra
ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid
Restart=always

[Install]
WantedBy=multi-user.target
EOF

启动并启用服务以在引导时启动。

sudo systemctl daemon-reload
sudo systemctl start cassandra.service
sudo systemctl enable cassandra

检查服务状态:

$systemctl status cassandra.service
● cassandra.service - Apache Cassandra
   Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-03-04 22:24:31 EAT; 2s ago
 Main PID: 8758 (java)
    Tasks: 10 (limit: 26213)
   Memory: 3.9G
   CGroup: /system.slice/cassandra.service
           └─8758 java -Xloggc:/var/log/cassandra/gc.log -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:StringTableSize=1000003 -XX:+AlwaysPreTouch -XX:-Us>

Mar 04 22:24:31 cent8.localdomain systemd[1]: Started Apache Cassandra.

我们还可以通过以下命令验证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 KiB     256          100.0%            0daf41fa-22e5-4471-bc00-9aed6f566235  rack1

要对Cassandra运行查询,请使用以下命令调用CQL shell。

$cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.6 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>

配置文件的默认位置是/etc/cassandra。日志和数据目录的默认位置是/var/log/cassandra /和/var/lib/cassandra。

配置Cassandra

要在单个节点上运行Cassandra,默认配置文件位于/etc/cassandra/conf/cassandra.yaml。对于节点群集设置,我们可能需要修改此文件以确保正确调整群集。

至少你
应该考虑设置以下属性:cluster_name:群集的名称.seeds:群集种子的IP地址的逗号分隔列表.storage_port:我们不一定需要更改此设置,但请确保没有防火墙阻止此端口.listen_address:节点的IP地址,这是允许其他节点与该节点通信的地址,因此更改它很重要。native_transport_port:对于storage_port,请确保此端口未被防火墙阻止,因为客户端将与之通信。卡桑德拉在这个港口。

更改目录的位置

配置yaml文件控制以下数据目录。data_file_directories:数据文件所在的一个或者多个目录.commitlog_directory:提交日志文件所在的目录.saved_caches_directory:保存的缓存所在的目录.hints_directory:提示所在的目录。

出于性能原因,如果我们有多个磁盘,请考虑将提交日志和数据文件放在不同的磁盘上。

设置环境变量

JVM级设置(例如堆大小)在cassandra-env.sh中设置。考虑将任何其他JVM命令行参数添加到环境变量JVM_OPTS中。这些参数在启动时会传递给Cassandra服务。

Cassandra日志

正在使用的记录器是logback。我们可以通过编辑logback.xml更改日志记录属性。默认情况下,它将以INFO级别登录到名为system.log的文件中,并以调试级别登录到名为debug.log的文件中。在前台运行时,它还将以INFO级别登录到控制台。