在 Linux 中安装 Cassandra

背景

需要在 CentOS 7.4 服务器上安装 Cassandra,于是做个笔记,记录一下过程。

正文

Cassandra 依赖 OracleJDK 1.8 以及 Python 2.7,请检查是否有安装。

  • 下载安装
  • 启动配置
  • 检查状态

下载安装

如果你喜欢一键安装,你可以参考 Cassandra 官方安装教程,但有必要告诉你的是,官方教程会同时下载 OpenJDK、Python 等依赖,希望你不会因此后悔。

我准备使用我自己的安装方式,这和官方教程同样简单。

首先创建 /usr/local/cassandra 目录:

sudo mkdir /usr/local/cassandra

cd /usr/local/cassandra

然后进入 Cassandra 官方网站:

在 Linux 中安装 Cassandra_第1张图片

点击 Download Cassandra

在 Linux 中安装 Cassandra_第2张图片

选择 3.11.2 版本:

在 Linux 中安装 Cassandra_第3张图片

直接复制,或使用右键 复制链接地址,运行命令:

sudo wget http://mirrors.hust.edu.cn/apache/cassandra/3.11.2/apache-cassandra-3.11.2-bin.tar.gz

下载完毕:

在 Linux 中安装 Cassandra_第4张图片

解压到当前目录:

sudo tar xvzf apache-cassandra-3.11.2-bin.tar.gz

解压完毕,如果进入 apache-cassandra-3.11.2/bin 目录输入 cassandra 的话,可以启动它,但是请暂时不要这样做。

启动配置

在启动之前,先配置一下 conf/cassandra.yaml 文件:

cluster_name: 'Smith Cluster'

hints_directory: /var/data/cassandra/hints

data_file_directories:
     - /var/data/cassandra/data

commitlog_directory: /var/data/cassandra/commitlog

cdc_raw_directory: /var/data/cassandra/cdc_raw

saved_caches_directory: /var/data/cassandra/saved_caches

将集群名字修改为 Smith Cluster,这样做是不希望被动加入其他 Cassandra 实例的集群,我们需要保持单机状态。

而其他目录相关的路径,我们希望在升级 Cassandra 版本时,不至于丢失任何以前的数据。

创建 /var/data/var/data/cassandra 目录,并将 data 目录权限修改为 773 策略:

sudo mkdir /var/data

sudo mkdir /var/data/cassandra

sudo chmod -R 773 /var/data

Cassandra 并不希望以 root 身份启动,可如果没有 sudo 的话,又没法启动成功,于是做了这样一个折中方案,可能有点危险:授予了其他用户写入和执行权限。但目前没找到(其实没认真找)更好的方法,希望有大神前来指点一二。

启动 Cassandra:

cd /usr/local/cassandra/apache-cassandra-3.11.2/bin

./cassandra

检查状态

ps -ef | grep cassandra 可以得知它启动了,但是并不清楚是否可以连接。

那么通过以下命令来检查状态:

./cqlsh

如图:

图片描述

为了更好地使用这些命令,应该像配置 JDK 那样建立:

sudo vim /etc/profile.d/cassandra.sh

输入内容:

export CASSANDRA_HOME=/usr/local/cassandra/apache-cassandra-3.11.2
export PATH=$CASSANDRA_HOME/bin:$PATH

重载一下环境变量,再检查一下状态:

cd ..

source profile

cqlsh

完美:

在 Linux 中安装 Cassandra_第5张图片

总结

Cassandra 存在很多坑人的地方,这里由于是 CentOS 7.4 系统,内置了 Python 2.7,因此不会在 cqlsh 命令上遭遇挫折。对于集群名字,如果从一开始没有设置好,后面再建立集群的时候,需要做很多事情。而文件目录不手动修改的话,它会在 Cassandra 的 ./data 目录下默认创建那些文件,一旦需要升级版本,数据迁移将变得非常棘手。

你可能感兴趣的:(操作系统,python,运维)