利用VMware在centOS虚拟机上安装Zookeeper

  为了搭建zookeeper 服务,需要找一台服务器,本着不为公司添麻烦的心理,所以呀 我就选择了搭建虚拟机,通过虚拟机搭建zookeeper。相信很多人在看别人的博客或者视频的时候,感觉别人一步一步的好顺当啊。基本上是看了之后就觉得别人行我也行。可实际自己弄的时候简直一步一个坑,我也是不能说一步一个坑那也是两三步一个坑吧。下面我就一步一步的来,给大家讲解我从搭建虚拟机到搭建zookeeper服务,期间遇到的各种各样的问题,以及解决办法。

  第一步:先在VMware 创建一个虚拟机,具体步骤不再赘述,只说一下我遇到的问题。

    问题1.创建的centos虚拟机无法打开(打开就是黑屏状态,没有任何反应)

      因为我第一遍创建虚拟机的时候选择的自定义,后面 我的解决方式是在创建新的虚拟机的时候 模式选择要选择 “典型” ,然后就好了,具体原因未知。

  第二步:然后我们输入ip查询命名 ip addr  也可以输入 ifconfig查看ip,但此命令会出现3个条目,centos的ip地址是ens33条目中的inet值。

    利用VMware在centOS虚拟机上安装Zookeeper

    发现 ens33 没有 inet 这个属性,那么就没法通过IP地址连接虚拟机。

    接着来查看ens33网卡的配置: vi /etc/sysconfig/network-scripts/ifcfg-ens33   注意vi后面加空格

    利用VMware在centOS虚拟机上安装Zookeeper

    从配置清单中可以发现 CentOS 7 默认是不启动网卡的(ONBOOT=no)。

     把这一项改为YES(ONBOOT=yes),

     利用VMware在centOS虚拟机上安装Zookeeper

    然后按 Esc 退出  再出入命令 :wq  再按Enter即可  (备注 :wq 是保存然后退出的意思 后面会专门讲下vi)

     然后重启网络服务: sudo service network restart  ,正常应该出现类似下面这个图

    利用VMware在centOS虚拟机上安装Zookeeper

  第三步:本机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 

  1. 在/usr/local下创建一个文件夹叫zookeeper,并在zookeeper文件夹下再创建两个文件夹data和dataLog。

  利用VMware在centOS虚拟机上安装Zookeeper

  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.