Oracle Linux 8 安装 Apache Cassandra

Apache Cassandra 是一个开源、宽列存储 NoSQL 数据库管理系统,旨在处理大量数据。 Cassandra 可以分布在多台服务器上,以实现高可用性,没有单点故障。 通常,它被用作在线事务应用程序的实时操作数据存储和大型系统的读取密集型数据库。 目前,它被许多组织使用,包括 Netflix、Digg、Adobe、Twitter、HP、IBM、Rackspace、Cisco 和 Reddit。

在本指南中,我们将解释 Oracle Linux 8 上安装 Apache Cassandra。

先决条件

  • 在 云平台上运行 Oracle Linux 8 的服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Oracle Linux 作为至少 4GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 安装 Java 8

默认情况下,Apache Cassandra 仅支持 Java 版本 8,因此必须在我们的服务器上安装 Java 8。 如果未安装,我们可以使用以下命令将其与其他依赖项一起安装:

dnf install epel-release python2 python2-pip java-1.8.0-openjdk -y

安装后,使用以下命令验证 Java 安装:

java -version

我们将在以下输出中获得 Java 版本:

openjdk version "1.8.0_332"
OpenJDK Runtime Environment (build 1.8.0_332-b09)
OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode)

接下来,安装 cqlsh 命令行实用程序以通过命令行连接到 Cassandra。

pip2 install cqlsh

第 3 步 – 安装 Apache Cassandra

默认情况下,Apache Cassandra 包不包含在 Oracle Linux 8 默认存储库中,因此我们需要为 Apache Cassandra 创建一个存储库。 我们可以使用以下命令创建 Apache Cassandra 存储库:

nano /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

完成后保存并关闭文件,然后使用以下命令安装 Apache Cassandra:

dnf install cassandra -y

第 4 步 – 为 Cassandra 创建服务文件

建议创建一个服务文件来通过 systemd 管理 Apache Cassandra 服务。 我们可以使用以下命令创建它:

nano /etc/systemd/system/cassandra.service

添加以下行:

[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

保存并关闭文件,然后重新加载 systemd 守护程序以应用更改:

systemctl daemon-reload

接下来,使用以下命令启动并启用 Cassandra 服务:

systemctl start cassandra
systemctl enable cassandra

要验证 Apache Cassandra 的状态,请运行以下命令:

systemctl status cassandra

我们应该看到以下输出:

● cassandra.service - Apache Cassandra
   Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-04-30 07:54:46 EDT; 15s ago
 Main PID: 2170 (java)
    Tasks: 23 (limit: 23694)
   Memory: 1.1G
   CGroup: /system.slice/cassandra.service
           └─2170 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch >

Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO  [main] 2022-04-30 07:55:00,318 CassandraDaemon.java:640 - Classpath: /etc/cassandra/conf:/>
Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO  [main] 2022-04-30 07:55:00,319 CassandraDaemon.java:642 - JVM Arguments: [-ea, -da:net.ope>
Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN  [main] 2022-04-30 07:55:00,405 NativeLibrary.java:201 - Unable to lock JVM memory (ENOMEM)>
Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO  [main] 2022-04-30 07:55:00,569 MonotonicClock.java:202 - Scheduling approximate time conve>
Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO  [main] 2022-04-30 07:55:00,577 MonotonicClock.java:338 - Scheduling approximate time-check>
Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN  [main] 2022-04-30 07:55:00,585 StartupChecks.java:143 - jemalloc shared library could not >
Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN  [main] 2022-04-30 07:55:00,585 StartupChecks.java:187 - JMX is not enabled to receive remo>
Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO  [main] 2022-04-30 07:55:00,590 SigarLibrary.java:44 - Initializing SIGAR library
Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN  [main] 2022-04-30 07:55:00,603 SigarLibrary.java:174 - Cassandra server running in degrade>
Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN  [main] 2022-04-30 07:55:00,604 StartupChecks.java:329 - Maximum number of memory map areas>

第 5 步 – 验证 Apache Cassandra

等待一段时间以完全启动 Apache Cassandra,然后使用以下命令验证 Apache Cassandra:

nodetool status

我们将收到以下错误:

nodetool: Failed to connect to '127.0.0.1:7199' - URISyntaxException: 'Malformed IPv6 address at index 7: rmi://[127.0.0.1]:7199'.

要解决此错误,请在运行 nodetool 时添加“legacy”解析标志:

nodetool -Dcom.sun.jndi.rmiURLParsing=legacy 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.06 KiB  16      100.0%            91f2092e-f428-40f8-8093-efe820abe917  rack1

接下来,使用 cqlsh 实用程序连接到 Cassandra shell:

cqlsh

连接后,我们应该得到以下输出:

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

第 6 步 – 更改 Cassandra 集群名称

默认情况下,Cassandra 的集群名称设置为“Test Cluster”。 要更改默认集群名称,请使用以下命令连接到 Cassandra:

cqlsh

接下来,使用以下命令更改集群名称:

cqlsh> UPDATE system.local SET cluster_name="Atlantic Cluster" WHERE KEY = 'local';

接下来,使用以下命令退出 Cassandra shell:

cqlsh> exit

接下来,编辑 Apache Cassandra 主配置文件并定义新的集群名称:

nano /etc/cassandra/default.conf/cassandra.yaml

更改 Cassandra 集群名称,如下所示:

cluster_name: 'Atlantic Cluster'

保存并关闭文件,然后重新启动 Apache Cassandra 以应用更改:

systemctl restart cassandra

现在,使用以下命令验证 Cassandra 集群名称:

cqlsh

我们应该在以下输出中获得新的集群名称:

Connected to Atlantic Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.3 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.

在上述指南中,我们解释了 Oracle Linux 8 上安装 Apache Cassandra。我们现在可以使用 Apache Cassandra 来处理和管理大型数据集。 试一试来自 的 VPS 托管!

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论