简介
Cassandra,或者说是 Apache Cassandra,是一个高度可扩展的开源 NoSQL 数据库系统,在多节点设置上能够实现出色的性能。
在本教程中,您将学习如何在 Ubuntu 14.04 上安装和使用它来运行单节点集群。
先决条件
要完成本教程,您需要以下内容:
- Ubuntu 14.04 Droplet
- 一个具有 sudo 权限的非 root 用户(《使用 Ubuntu 14.04 进行初始服务器设置》解释了如何设置这一点)
步骤 1 — 安装 Oracle Java 虚拟机
Cassandra 需要安装 Oracle Java SE Runtime Environment (JRE)。因此,在这一步中,您将安装并验证它是否为默认 JRE。
要使 Oracle JRE 软件包可用,您需要使用以下命令添加个人软件包存档(PPA):
sudo add-apt-repository ppa:webupd8team/java
更新软件包数据库:
sudo apt-get update
然后安装 Oracle JRE。安装此特定软件包不仅会安装它,还会使其成为默认 JRE。在提示时接受许可协议:
sudo apt-get install oracle-java8-set-default
安装完成后,验证它现在是否为默认 JRE:
java -version
您应该会看到类似以下的输出:
java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
步骤 2 — 安装 Cassandra
我们将使用来自官方 Apache Software Foundation 仓库的软件包来安装 Cassandra,因此首先添加仓库,以便软件包对您的系统可用。请注意,Cassandra 2.2.2 是本文发布时的最新版本。更改 22x
以匹配最新版本。例如,如果 Cassandra 2.3 是最新版本,则使用 23x
:
echo "deb http://www.apache.org/dist/cassandra/debian 22x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
然后添加仓库的源:
echo "deb-src http://www.apache.org/dist/cassandra/debian 22x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
为了避免在软件包更新期间出现软件包签名警告,我们需要从与软件包仓库相关联的 Apache Software Foundation 中添加三个公钥。
使用以下一对命令添加第一个:
gpg --keyserver pgp.mit.edu --recv-keys F758CE318D77295D gpg --export --armor F758CE318D77295D | sudo apt-key add -
然后添加第二个密钥:
gpg --keyserver pgp.mit.edu --recv-keys 2B5C1B00 gpg --export --armor 2B5C1B00 | sudo apt-key add -
然后添加第三个:
gpg --keyserver pgp.mit.edu --recv-keys 0353B12C gpg --export --armor 0353B12C | sudo apt-key add -
再次更新软件包数据库:
sudo apt-get update
最后,安装 Cassandra:
sudo apt-get install cassandra
步骤 3 — 故障排除和启动 Cassandra
通常情况下,Cassandra 在这一点上应该已经自动启动了。但是,由于一个 bug,它没有启动。要确认它是否未运行,请输入:
sudo service cassandra status
如果它没有运行,将显示以下输出:
* could not access pidfile for Cassandra
这是 Ubuntu 上最新版本 Cassandra 的一个众所周知的问题。我们将尝试一些修复方法。首先,开始编辑它的初始化脚本。我们要修改的参数位于该脚本的第 60 行,因此使用以下命令打开它:
sudo nano +60 /etc/init.d/cassandra
该行应该是:
[secondary_label /etc/init.d/cassandra] CMD_PATT="cassandra.+CassandraDaemon"
将其更改为:
[secondary_label /etc/init.d/cassandra] CMD_PATT="cassandra"
关闭并保存文件,然后重新启动服务器:
sudo reboot
或者:
sudo shutdown -r now
重新登录后,Cassandra 现在应该正在运行。验证:
sudo service cassandra status
如果成功,您将看到:
* Cassandra is running
第四步 — 连接到集群
如果你成功启动了 Cassandra,请检查集群的状态:
sudo nodetool status
在输出中,UN 表示它是 Up 和 Normal:
数据中心: datacenter1 ======================= 状态=启动/关闭 |/ 状态=正常/离开/加入/移动 -- 地址 负载 令牌 拥有者 主机 ID 机架 UN 127.0.0.1 142.02 KB 256 ? 2053956d-7461-41e6-8dd2-0af59436f736 rack1 注意: 非系统 keyspace 没有相同的复制设置,有效的拥有者信息是无意义的
然后使用其交互式命令行界面 cqlsh
连接到它。
cqlsh
你将看到它已连接:
已连接到 127.0.0.1:9042 的 Test Cluster。 [cqlsh 5.0.1 | Cassandra 2.2.2 | CQL spec 3.3.1 | Native protocol v4] 使用 HELP 获取帮助。 cqlsh>
输入 exit
退出:
exit
结论
恭喜!你现在在 Ubuntu 14.04 上运行了一个单节点的 Cassandra 集群。有关 Cassandra 的更多信息,请访问该项目的网站。