利用VMware在centOS虚拟机上安装Zookeeper
为了搭建zookeeper 服务,需要找一台服务器,本着不为公司添麻烦的心理,所以呀 我就选择了搭建虚拟机,通过虚拟机搭建zookeeper。相信很多人在看别人的博客或者视频的时候,感觉别人一步一步的好顺当啊。基本上是看了之后就觉得别人行我也行。可实际自己弄的时候简直一步一个坑,我也是不能说一步一个坑那也是两三步一个坑吧。下面我就一步一步的来,给大家讲解我从搭建虚拟机到搭建zookeeper服务,期间遇到的各种各样的问题,以及解决办法。
第一步:先在VMware 创建一个虚拟机,具体步骤不再赘述,只说一下我遇到的问题。
问题1.创建的centos虚拟机无法打开(打开就是黑屏状态,没有任何反应)
因为我第一遍创建虚拟机的时候选择的自定义,后面 我的解决方式是在创建新的虚拟机的时候 模式选择要选择 “典型” ,然后就好了,具体原因未知。
第二步:然后我们输入ip查询命名 ip addr 也可以输入 ifconfig查看ip,但此命令会出现3个条目,centos的ip地址是ens33条目中的inet值。
发现 ens33 没有 inet 这个属性,那么就没法通过IP地址连接虚拟机。
接着来查看ens33网卡的配置: vi /etc/sysconfig/network-scripts/ifcfg-ens33 注意vi后面加空格
从配置清单中可以发现 CentOS 7 默认是不启动网卡的(ONBOOT=no)。
把这一项改为YES(ONBOOT=yes),
然后按 Esc 退出 再出入命令 :wq 再按Enter即可 (备注 :wq 是保存然后退出的意思 后面会专门讲下vi)
然后重启网络服务: sudo service network restart ,正常应该出现类似下面这个图
第三步:本机IP和虚拟主机IP 互ping,看看是否互通。如果不通请检查虚拟机的防火墙是否关闭,下面是对应的命令
systemctl status firewalld //查看防火墙状态 systemctl stop firewalld //关闭防火墙
如果防火墙关闭了,却发生 本机能ping通虚拟机,虚拟机却不能ping通本机。
那么去 控制面板 --》网络和 Internet --》网络连接 把 VMnet8 网络启用起来,然后再尝试互ping . 互通之后继续第四步
第四步:安装JDK 设置环境变量 下面是对应的各个命令
//查看java jdk 是否安装 java -version // 安装jdk yum install java-1.8.0-openjdk //设置环境变量 ,注意目录要设置成你安装的目录 export JAVA_HOME=/usr/java
第五步:下载zookeeper ,并安装
官网:https://zookeeper.apache.org 下载ZooKeeper,地址:http://mirrors.hust.edu.cn/apache/zookeeper/
第六步:通过xshell 上传zookeeper 包 到上传到/usr/local下 , rz -y zookeeper-3.4.14.tar.gz
再次报错: rz:未找到命令
解决方式:
yum -y install lrzsz
解压zookeeper
tar -zxvf zookeeper-3.4.14.tar.gz
第七步 :配置Zookeeper
- 在/usr/local下创建一个文件夹叫zookeeper,并在zookeeper文件夹下再创建两个文件夹data和dataLog。
2.cd /usr/local/zookeeper-3.4.14/conf/ 下,可以自己创建一个zoo.cfg或者将zoo_sample.cfg修改为zoo.cfg:我这边新建了一个并设置以下参数:
这部分参考了 https://blog.csdn.net/u010246789/article/details/52101026
他配了三个server
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
我这主要是讲完整的从创建虚拟机到搭建zookeeper 这个过程,如果想搭建主从的zookeeper参考 这位博主的。
tickTime=2000 dataDir=/usr/local/zookeeper/data clientPort=2181 initLimit=5 syncLimit=2 server.1=zookeeper1:2888:3888
3.在上面的dataDir目录下(即/usr/local/zookeeper/data)创建一个myid文件。将server.1对应的1写入myid中(server.2就是2): echo 1 > /usr/local/zookeeper/data/myid
4.修改/etc/hosts文件所以,否则计算机无法识别zookeeper1:比如 我这台机子的地址是192.168.44.135,所以需要在/etc/hosts中加入:
192.168.44.135 zookeeper1
第八步:启动zookeeper
//启动命令 /usr/local/zookeeper-3.4.14/bin/zkServer.sh start //查看状态命令 /usr/local/zookeeper-3.4.14/bin/zkServer.sh status //停止服务命令 /usr/local/zookeeper-3.4.14/bin/zkServer.sh stop
-----------------------------------------------------------------------------------------------------------------------------
后记:如果是单机版,hosts文件只用配三个属性就可以了
tickTime=2000 dataDir=/usr/local/zookeeper/data clientPort=2181
另外如果zookeeper 如果启动失败,或者查看状态报下面这种错误,请检查防火墙是否关闭,端口是否被占用(netstat -tunlp|grep 2181)
/usr/local/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port not found in static config file. Looking in dynamic config file.
grep: : 没有那个文件或目录
Client port not found. Terminating.