模拟接近真实的分布式环境。
环境:VMware Fusion(是针对mac os的虚拟机,官网有自行下载),安装好VMware后,在此基础上安装Centos7,然后克隆多个Centos7虚拟机。
遇到的问题:
1. 虚拟机中鼠标切入切出问题(mac os: controll+command)
2. 企图在centos7中下载jdk,失败。
因为centos7创建好后并没有设置网络配置,对外网的访问是跟本地一样的。什么都直接下载。但问题出现了,下载yum、rz等命令是没问题等,但是直接在虚拟机中下载jdk就有问题了,授权失败。尝试了各种方式都不行,最后尝试在本地下载好jdk,通过ftp上传到虚拟机中,步骤如下:
1)虚拟机先安装vsftpd组件,没有这个组件是上传不了的。
查看虚拟机中是否安装了vsftpd组件,使用命令rpm -qa | grep -i vsftpd。没有内容打印输出说明没有安装,或者去etc下查看是否有vsftpd目录,没有也说明没有vsftpd组件。
接下来给虚拟机安装vsfpd组件:
yum -y install vsftpd
再执行rpm -qa | grep -i vsftpd命令,看到返回vsftpd版本 就说明安装好了。
2)接下来开始上传本地文件到虚拟机:
为了方便上传下载并测试虚拟机ftp是否可用,暂时关闭虚拟机的防火墙
虚拟机中执行命令 systemctl stop firewalls.service
开机禁止防火墙启动 systemctl diable firewalld.service
(其实如果没遇到防火墙拦截的问题可以不管它)
查找虚拟机的ip:ip addr
在mac本地shell窗口(可以提前cd 到要上传的文件目录)执行命令
scp jdk-8u221-linux-i586.tar.gz root@172.16.127.128:~
第二个参数是本机jdk压缩包名称;第三个参数是虚拟机用户名@虚拟机ip
至此上传成功!
参考文章:centos7搭建ftp服务器 https://blog.csdn.net/zhaojia92/article/details/79511581
linux防火墙设置 https://www.cnblogs.com/yyxq/p/10551274.html
3)安装jdk
开始 我下载的是jdk-8u221-linux-i586.tar.gz 经过一系列环境变量配置 还是安装失败,提示
经排查是因为安装的jdk版本不对,centos7是64位的,相应的也应该安装64位的jdk, 下载jdk-8u221-linux-x64.tar.gz再次安装,成功。
将jdk-8u221-linux-x64.tar.gz copy到/usr/local目录下:cp jdk-8u221-linux-x64.tar.gz /usr/local
解压: tar -zxvf jdk-8u221-linux-x64.tar.gz
(我嫌名字太长,进行了重命名,也可以不用重新命名):mv jdk-8u221-linux-x64.tar.gz jdk1.8
配置环境变量 sudo vi /etc/profile 输入i 进入编辑模式,文档最后添上如下几句即可,esc退出编辑模式,:wq保存退出,最后还要source profile 使编辑的变量成立。
验证jdk是否安装成功(老规矩):java -version,输出Java版本就是成功了。
至此给虚拟机安装jdk完毕!
3. 虚拟机安装zookeeper
ftp上传过程和2中一样。
我使用的是zookeeper-3.4.12.tar,解压命令 tar -xvf zookeeper-3.4.12.tar。
(转移文件目录,解压,重命名略)
目录 /usr/local/zookeeper
cd conf
sudo vi zoo.cfg
cd /bin 开启zookeeper服务却报错 -bash: zkServer.sh: command not found
把zookeeper放进环境变量中就好了(zk在centos里真有种牵着不走打着倒退的赶脚),如下:
连接zk服务 zkCli.sh -server localhost:2181
竟然成功了
接下来就是创建znode了,至于什么是znode,可先自行百度。