如何在 CentOS 7 上安装 Cassandra

Apache Cassandra 最初于 2008 年由 Apache 软件基金会。 它是一个免费、开源、NoSQL 类型的数据库管理系统,旨在处理可跨多个服务器共享的大量信息,并且它提供高可用性,因此它消除了单点故障问题! 在基本硬件或更大的云基础架构上运行时,它具有出色的容错能力。 它被Constant Contact、CERN、Comcast、eBay、GitHub、GoDaddy、Hulu等知名公司使用, Instagram,直觉, Netflix、Reddit、天气频道和许多其他商业问题。 他们选择使用 Cassandra,因为它是托管分散式 NoSQL 数据库解决方案的明智选择。

让我们开始安装吧。 在本文中,我们将安装 Apache CentOS 7 VPS 服务器上的 Cassandra。

先决条件

我们需要验证一些项目,然后安装 Java,因为 Cassandra 是使用 Java 编程语言开发的。

首先,让我们验证一下我们的 CentOS 版本

[root@test yum.repos.d]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

接下来,确保您的服务器是最新的最新软件

yum -y update

第 1 步:安装 Java

现在我们已经有了这些先决条件,让我们安装 Java。 我们将使用较新的 OpenJDK 安装(Open Java Development Kit),因为较早的 Oracle JDK 是 停产 (生命周期结束)自 2019 年 1 月起,除非您购买营业执照,否则将不再提供任何更新。 作为甲骨文 宣布, “2019 年 1 月之后发布的 Oracle Java SE 8 的公共更新将无法在没有商业许可的情况下用于商业、商业或生产用途”。 但是,OpenJDK 是完全开源的,可以自由使用。

由于 Oracle JDK 的构建基于 OpenJDK,因此这两个软件标题之间没有根本的技术差异。 所有主要的 Linux 发行版(Fedora、Ubuntu、Red Hat)提供 OpenJDK 作为默认的 Java SE 实现,因此我们也会相信他们在选择该平台时的判断。

yum -y install java

现在,让我们快速检查一下我们刚刚安装的 java 的版本

java -version
 openjdk version "1.8.0_201"
 OpenJDK Runtime Environment (build 1.8.0_201-b09)
 OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)

第 2 步:添加 Cassandra 存储库

好的,是时候将 Cassandra 存储库添加到服务器了。 我们将使用 VIM(因为还有其他很棒的编辑器吗?)

vim /etc/yum.repos.d/cassandra.repo
(click insert on your keyboard and then 
copy/paste the info below into the repo file)

[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

(after that, click on the escape key to end editing the file)

完成后,使用 ‘:wq‘ 来保存文件。
好的,让我们再次更新我们的系统,所以所有的变化都被拾起。

[root@new ~]# yum -y update
 Loaded plugins: fastestmirror, priorities
 Loading mirror speeds from cached hostfile
 * base: mirrors.BYNSS.com
 * extras: mirrors.BYNSS.com
 * updates: mirrors.BYNSS.com
 cassandra/signature | 833 B 00:00:00
 Retrieving key from https://www.apache.org/dist/cassandra/KEYS
 Importing GPG key 0xF2833C93:
 Userid     : "Eric Evans <[email protected]>"
 Fingerprint: cec8 6bb4 a0ba 9d0f 9039 7cae f835 8fa2 f283 3c93
 From       : https://www.apache.org/dist/cassandra/KEYS
 cassandra/signature  | 2.9 kB 00:00:00 !!!
 cassandra/primary_db | 4.2 kB 00:00:00
 No packages marked for update

第 3 步:安装 Cassandra

现在,是时候安装 Cassandra 了!

注意:在此过程中,您需要接受来自 Cassandra 存储库的 5 个 gpg 密钥提示。 (yum 要求接受所有密钥的原因是,它们不会在 /etc/pki/rpm-gpg 文件夹呢。 接受密钥会将所需的密钥添加到文件夹中。)

[root@new ~]# yum install cassandra
 Dependencies Resolved
 Package  Arch Version Repository Size

 Installing:
 cassandra noarch 3.11.4-1 cassandra 28 M
 Transaction Summary

 Install  1 Package
 Total download size: 28 M
 Installed size: 38 M
 Is this ok [y/d/N]: y
 Downloading packages:
 warning: /var/cache/yum/x86_64/7/cassandra/packages/cassandra-3.11.4-1.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID fe4b2bda: NOKEY
 Public key for cassandra-3.11.4-1.noarch.rpm is not installed
 cassandra-3.11.4-1.noarch.rpm  | 28 MB 00:00:00
 Retrieving key from https://www.apache.org/dist/cassandra/KEYS
 Importing GPG key 0xF2833C93:
 Userid     : "Eric Evans <[email protected]>"
 Fingerprint: cec8 6bb4 a0ba 9d0f 9039 7cae f835 8fa2 f283 3c93
 From       : https://www.apache.org/dist/cassandra/KEYS
 Is this ok [y/N]: y
 Importing GPG key 0x8D77295D:
 Userid     : "Eric Evans <[email protected]>"
 Fingerprint: c496 5ee9 e301 5d19 2ccc f2b6 f758 ce31 8d77 295d
 From       : https://www.apache.org/dist/cassandra/KEYS
 Is this ok [y/N]: y
 Importing GPG key 0x2B5C1B00:
 Userid     : "Sylvain Lebresne (pcmanus) <[email protected]>"
 Fingerprint: 5aed 1bf3 78e9 a19d ade1 bcb3 4bd7 36a8 2b5c 1b00
 From       : https://www.apache.org/dist/cassandra/KEYS
 Is this ok [y/N]: y
 Importing GPG key 0x0353B12C:
 Userid     : "T Jake Luciani <[email protected]>"
 Fingerprint: 514a 2ad6 31a5 7a16 dd00 47ec 749d 6eec 0353 b12c
 From       : https://www.apache.org/dist/cassandra/KEYS
 Is this ok [y/N]: y
 Importing GPG key 0xFE4B2BDA:
 Userid     : "Michael Shuler <[email protected]>"
 Fingerprint: a26e 528b 271f 19b9 e5d8 e19e a278 b781 fe4b 2bda
 From       : https://www.apache.org/dist/cassandra/KEYS
 Is this ok [y/N]: y
 Running transaction check
 Running transaction test
 Transaction test succeeded
 Running transaction
 Installing : cassandra-3.11.4-1.noarch  1/1
 Verifying  : cassandra-3.11.4-1.noarch  1/1
 Installed:
 cassandra.noarch 0:3.11.4-1
 Complete!

第 4 步:启动 Cassandra

现在,让我们启动/启用 Cassandra 服务:

[root@new ~]# systemctl enable cassandra
 cassandra.service is not a native service, redirecting to /sbin/chkconfig.
 Executing /sbin/chkconfig cassandra on[root@new ~]# systemctl start cassandra

接下来,我们将检查 Cassandra 是否正在运行。

[root@new ~]# nodetool status
 Datacenter: datacenter1
 =======================
 Status=Up/Down
 |/ State=Normal/Leaving/Joining/Moving
 --  Address    Load Tokens       Owns (effective) Host ID   Rack

[root@new ~]# 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  103.67 KiB 256 100.0% cda3cdf2-e210-4736-a36c-4bad87eadf7b  rack1

完美的! Cassandra 现已安装。

(顺便说一句,Cassandra 的数据保存在 /var/lib/cassandra 文件夹)

[root@new ~]# cd /var/lib/cassandra
 [root@new cassandra]# ll
 total 16
 drwxr-xr-x 2 cassandra cassandra 4096 Mar 28 15:30 commitlog
 drwxr-xr-x 7 cassandra cassandra 4096 Mar 28 15:30 data
 drwxr-xr-x 2 cassandra cassandra 4096 Feb  2 18:48 hints
 drwxr-xr-x 2 cassandra cassandra 4096 Feb  2 18:48 saved_caches

配置文件保存在 /etc/cassandra 文件夹。

[root@new cassandra]# vim [root@new ~]# 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  103.67 KiB 256 100.0% cda3cdf2-e210-4736-a36c-4bad87eadf7b  rack1/etc/cassandra/
 conf/  default.conf/[root@new cassandra]# vim /etc/cassandra/conf/
 cassandra-env.sh  cassandra.yaml.orig logback.xml
 cassandra-env.sh.orig  commitlog_archiving.properties metrics-reporter-config-sample.yaml
 cassandra-jaas.config cqlshrc.sample README.txt
 cassandra-rackdc.properties hotspot_compiler triggers/
 cassandra-topology.properties jvm.options
 cassandra.yaml logback-tools.xml

最后,可以在 /etc/default/cassandra 文件

[root@new cassandra]# cat /etc/default/cassandra
 # NOTICE: See also /etc/cassandra/cassandra-env.sh# EXTRA_CLASSPATH provides the means to extend Cassandra's classpath with
 # additional libraries.  It is formatted as a colon-delimited list of
 # class directories and/or jar files.  For example, to enable the
 # JMX-to-web bridge install libmx4j-java and uncomment the following.
 #EXTRA_CLASSPATH="/usr/share/java/mx4j-tools.jar"

Cassandra 默认开始监听本地主机,所以 配置将需要由开发人员或系统的 admin 以满足您的需求。

如果您收到错误消息,例如:

‘Failed to connect to ’127.0.0.1:7199′: Connection refused’

然后查看以下教程以解决该问题:
错误:无法连接到“127.0.0.1:7199”:连接被拒绝(Cassandra) [SOLVED]

重新启动 Cassandra

[root@new cassandra]# systemctl restart cassandra

关闭 Cassandra

[root@new cassandra]# service cassandra stop