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