免责声明:本教程仅供参考学习,切勿抄袭或他用,搬运请注明来源,谢谢各位小伙伴的配合。
Hello,大家好,这里是普绿。上周做实验的时候涉及到Cassandra的分布式安装及CQL命令的简单使用,但由于大部分小伙伴用的都是伪分布式虚拟机,即只有一台主机,所以我将自己安装伪分布式Cassandra的教程整理如下,并在最后用简单的CQL命令测试安装情况,希望能够帮助大家顺利完成Cassandra的有关实验~
使用工具说明:
虚拟机软件:VMware® Workstation 16 Pro
虚拟机名称:CentOS 7 64位
镜像文件名称:CentOS-7-x86_64-DVD-2009.iso
分配运行内存:4GB
处理器:1个2核,共2核
分配硬盘内存:20GB
安装配置Cassandra需要jdk环境,为了方便大家获取资源,我这里已经将相关安装包整理上传到我的百度网盘上了,大家可以直接下载使用:点我下载
以下内容适合没有看过我之前教程的小伙伴学习,其他小伙伴可以直接跳过这一部分
为便于我们进行安装软件的一系列操作,我这里新建一个hadoop用户,如果已经有相关用户的小伙伴可以忽略这一步
adduser hadoop #添加用户
passwd hadoop #设置密码,一般也是hadoop
☝不用管提示的“无效的密码”,反复输入密码后回车即可(注:密码是隐藏的,不放心的话先多按几次backspace删除,然后再输入密码)
chmod -v u+w /etc/sudoers #添加sudoers文件可写权限
提示信息:mode of “/etc/sudoers” changed from 0440 (r–r-----) to 0640 (rw-r-----)
sudo vim /etc/sudoers #使用vim编辑器打开sudoers文件
☝找到Allow root to run any commands anywhere,在下面输入如图所示的代码
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
chmod -v u-w /etc/sudoers #收回sudoers文件可写权限
提示信息:mode of “/etc/sudoers” changed from 0640 (rw-r-----) to 0440 (r–r-----)
systemctl stop firewalld #关闭防火墙
systemctl status firewalld #查看防火墙状态
☝查看Active显示为dead,而不是running
同样地,如果大家有提前建立好相关文件夹,可以忽略此步
su hadoop #登入到hadoop用户
cd ~ #回到家目录
pwd #查看当前所在目录
提示信息:/home/hadoop
mkdir gzpackage #建立gz压缩包目录,名称为gzpackage
mkdir softwares #建立软件安装目录,名称为softwares
ls #查看所建的目录
☝显示为gzpackage和softwares
如果需要了解更多准备工作,欢迎查看我之前的这篇文章:
【Hadoop配置】用最短的时间配置伪分布式Hadoop(个人亲身经历)
这里我用到finalshell,用于稳定上传文件,如果直接拖动文件到虚拟机上传可能导致压缩包损坏,导致解压缩时产生如下报错
tar: 归档文件中异常的 EOF
tar: Error is not recoverable: exiting now
大家使用其他的shell软件如Xshell也是可以的,有关shell的用法这里也不赘述了,有需要的话可以留言,我会单独出一篇文章
补充说明:有些Shell可能会允许高权限的用户直接访问我们使用root模式创建的用户的家目录(简单说就是能从Shell进入hadoop的家目录),但是这样拖动压缩包大家会发现还是上传不了,这是因为Shell自身的权限和Linux系统对Shell的SSH的连接限制,大家只需要回到默认的用户下,拖动文件到家目录的桌面下即可
☝显示当前Shell所在的目录为【home/初始目录/桌面】
☝将文件拖动上传
sudo mv /home/20201304017/桌面/jdk-8u271-linux-x64.tar.gz /home/hadoop/gzpackage
sudo mv /home/20201304017/桌面/apache-cassandra-3.11.3-bin.tar.gz /home/hadoop/gzpackage
#移动文件到hadoop用户下的gzpackage目录
如果你的系统已经安装了jdk,那么这一步也是可以直接跳过的
cd gzpackage #进入安装包目录
cd ~/softwares #进入软件目录
ls #查看目录
☝需要显示jdk1.8.0_271
ln -s jdk1.8.0_271 jdk 创建快捷方式
ls #查看目录
☝需要额外显示jdk
如上所述,如果已经完成java的环境配置,这步也可以跳过
cd ~ #回到家目录
sudo vi ~/.bashrc #进入bashrc文件
在文件的最下面加入如下代码
#JAVA_HOME
export JAVA_HOME=~/softwares/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc #使文件生效
java -version #检查是否安装成功
☝如图显示则为安装成功
cd ~/gzpackage/ #进入压缩包目录
tar -zxvf apache-cassandra-3.11.3-bin.tar.gz -C ~/softwares/ #解压文件并转移到软件目录
cd ~/softwares #进入软件目录
sudo mv apache-cassandra-3.11.3 cassandra #重命名,便于后续操作
ls #查看目录
cd ~/softwares/cassandra/ #进入cassandra的根目录
mkdir commitlog
mkdir data
mkdir save_caches
#创建三个目录
ls #查看目录
cd ~/softwares/cassandra/conf/ #进入配置文件夹
vi cassandra.yaml #进入配置文件
这个文件一共有1237行,如果翻阅查找的话会很累,这里给大家说一下vi编辑器的查找功能:
刚进入文件即为查看模式,这个时候不要按【I】,直接按【/】键进入查找模式,输入想要查找的内容回车即可
这时按下键盘上的【n】可实现下一个查询跳转,先按【CAPS LOCK】再按【n】可实现上一个查询跳转
/commitlog. #查询内容
# commitlog_directory: /var/lib/cassandra/commitlog
改为:
commitlog_directory: /home/hadoop/softwares/cassandra/commitlog
/data. #查询内容
# data_file_directories:
改为:
data_file_directories:
- /home/hadoop/softwares/cassandra/data
注:这里一定要按照两行内容来写,不然会报错的
/caches. #查询内容
# saved_caches_directory: /var/lib/cassandra/saved_caches
改为:
saved_caches_directory: /home/hadoop/softwares/cassandra/save_caches
/rpc: #查询内容
/address: #查询内容
注:在终端输入
hostname
以查看主机名
完成上述配置后,保存文件并退出
cd ~/softwares/cassandra/bin/ #进入cassandra的bin目录
sudo ./cassandra -R #使用root权限启动cassandra
如果这里报错,一定一定要仔细检查
cassandra.yaml
./nodetool status #查看节点状态
☝如果看见【UN】,恭喜你,你的cassandra配置没有问题,节点可以正常启动!
cd ~/softwares/cassandra/bin/ #进入cassandra的bin目录
sudo ./cqlsh #启动CQL
CREATE KEYSPACE test WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 1};
#创建键空间,选择简单策略,副本的因子数为1
DESCRIBE test;
#查看创建的键空间
USE test;
#进入键空间
CREATE TABLE test(id int PRIMARY KEY, name text, age int);
#创建表及定义表内数据类型
DESCRIBE TABLE test;
#查看表内容
exit #退出cql
pkill -u `id -un` -f cassandra #关闭cassandra
到这里,本次配置及简单测试的所有内容就完成了,如果你在配置过程中发现和我有不一样的地方或者BUG,欢迎留言评论或私信,如果你想看更多的教程或其他内容,欢迎关注我,第一时间掌握更新动态,你们的支持是我创作最大的动力,我们下一期再见~
普绿
2022.11.7