在 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 官方网站:
点击 Download Cassandra
:
选择 3.11.2
版本:
直接复制,或使用右键 复制链接地址,运行命令:
sudo wget http://mirrors.hust.edu.cn/apache/cassandra/3.11.2/apache-cassandra-3.11.2-bin.tar.gz
下载完毕:
解压到当前目录:
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
完美:
总结
Cassandra 存在很多坑人的地方,这里由于是 CentOS 7.4 系统,内置了 Python 2.7,因此不会在 cqlsh
命令上遭遇挫折。对于集群名字,如果从一开始没有设置好,后面再建立集群的时候,需要做很多事情。而文件目录不手动修改的话,它会在 Cassandra 的 ./data
目录下默认创建那些文件,一旦需要升级版本,数据迁移将变得非常棘手。