如何在Ubuntu 14.04上安装Cassandra并运行单节点集群

介绍

Cassandra或Apache Cassandra是一个高度可扩展的开源NoSQL数据库系统,在多节点设置上实现了出色的性能。

在本教程中,您将学习如何安装和使用它在Ubuntu 14.04上运行单节点集群。

课程准备

要完成本教程,您需要以下内容:

  • Ubuntu 14.04 腾讯CVM,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 具有sudo权限的非root用户。

第1步 - 安装Oracle Java虚拟机

Cassandra要求安装Oracle Java SE运行时环境(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

您应该看到类似于以下内容的输出:

Outputjava 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,因此首先添加repo以使软件包可供您的系统使用。请注意,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

添加repo的来源:

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应该已经自动启动了。但是,由于一个错误,它没有。要确认它没有运行,请键入:

sudo service cassandra status

如果未运行,将显示以下输出:

Output* could not access pidfile for Cassandra

这是Ubuntu上最新版本的Cassandra的一个众所周知的问题。我们将尝试一些修复。首先,首先编辑其init脚本。我们要修改的参数在该脚本的第60行,因此使用以下命令打开它:

sudo nano +60 /etc/init.d/cassandra

该行应为:

/etc/init.d/cassandraCMD_PATT="cassandra.+CassandraDaemon"

将其更改为:

/etc/init.d/cassandra
CMD_PATT="cassandra"

关闭并保存文件,然后重新启动服务器:

sudo reboot

要么:

sudo shutdown -r now

重新登录后,Cassandra现在应该正在运行。校验:

sudo service cassandra status

如果你成功了,你会看到:

Output* Cassandra is running

第4步 - 连接到群集

如果您能够成功启动Cassandra,请检查群集的状态:

sudo nodetool status

在输出中,UN表示它是U p和N ormal:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns    Host ID                               Rack
UN  127.0.0.1  142.02 KB  256          ?       2053956d-7461-41e6-8dd2-0af59436f736  rack1
​
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless

然后使用其交互式命令行界面连接到它cqlsh

cqlsh

你会看到它连接:

OutputConnected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.2.2 | CQL spec 3.3.1 | Native protocol v4]
Use HELP for help.
cqlsh>

键入exit退出:

exit

结论

恭喜!您现在在Ubuntu 14.04上运行单节点Cassandra集群。有关Cassandra的更多信息,请访问该项目的网站

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Install Cassandra and Run a Single-Node Cluster on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 前言 项目展示地址,点这里...

2906
来自专栏wblearn

我的Github之Pull request的使用

GitHub已经成为的一切开放源码软件的基石。开发人员喜欢它,基于它进行协作,并不断通过它开发令人惊叹的项目。除了​​代码托管,GitHub的主要吸引力是使用它...

1242
来自专栏云计算教程系列

如何在Ubuntu 16.04上安装Prometheus

Prometheus是一个功能强大的开源监控系统,可从您的服务中收集指标并将其存储在时间序列数据库中。它通过Grafana等工具提供多维数据模型,灵活的查询语言...

9542
来自专栏张戈的专栏

解决Linux下MySQL启动错误Starting MySQL.Manager of pid-file quit without updating file.[FAILED]

上午刚装完 MySQL,启动时报如下错误: Starting MySQL.Manager of pid-file quit without updating f...

3695
来自专栏容器云生态

根据红帽RHEL7官方文档对centos7进行技术剖析(二)

第一章 使用红帽kickstart,自动化安装rhel。 http://pan.baidu.com/s/1qWqfXlq    文档下载地址。 第二章: 控制对...

3707
来自专栏向治洪

关于Android的UI测试

Android 测试主要分为3个类型: 单元测试(Unit Test) 区分UI代码和功能代码在Android开发中尤其困难。因为有时Activity既有Con...

2225
来自专栏IMWeb前端团队

代码覆盖率工具 istanbul

代码覆盖率工具 istanbul 1. 代码覆盖率 在测试时,我们的用例把所有代码都覆盖了吗? 对于这个问题引出了代码覆盖率的测试指标,一共有以下4种: 行覆盖...

3155
来自专栏Vamei实验室

Linux文件管理

对于计算机来说,所谓的数据就是0和1的序列。这样的一个序列可以存储在内存中,但内存中的数据会随着关机而消失。为了将数据长久保存,我们把数据存储在光盘或者硬盘中。...

2498
来自专栏GreenLeaves

Oracle 数据库实例和数据库

本文参考自oracle数据库实例,数据库的理解,纯属读书笔记,用于加深记忆。 先看Tom关于这二者的解释: 1、数据库 物理操作系统文件或磁盘的集合(我觉得可以...

24410
来自专栏张戈的专栏

解决网站静态缓存后WP-PostViews插件不计数的问题

突然发现文章浏览计数功能失效了,文章发了几个月才几十上百的浏览数,本以为是因为最近发的文章都比较冷门,不受欢迎。但是发布了几个月,才不到 2 百的访问量,这就不...

39315

扫码关注云+社区

领取腾讯云代金券