初识zookeeper以及安装和集群部署

初识zookeeper以及安装和集群部署

 
 
一、Zookeeper单体版安装
    在安装zookeeper之前要先安装jdk环境,具体在linux环境安装jdk1.8请参照linux笔记。
    1.在/usr/local/zoo 文件夹下执行命令 wget http://apache.fayea.com/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5.tar.gz 下载zookeeper压缩包,并执行tar -zxvf 进行解压。
    2.初次使用zookeeper需要将conf文件夹下的zoo_sample.cfg修改为zoo.cfg。
    3.在zookeeper安装目录下建立一个文件夹data。
    4.修改zoo.cfg文件中的dataDir为data的路径,保存退出。
    5.启动zookeeper,zkServer.sh.
    (遇到的问题,在bin目录下执行zkServer.sh start提示我命令不存在???
    原因是zookeeper没有配置环境变量,可以选择配置环境变量或者使用命令./zkServer.sh start)
    (修改之后。。。。命令好使了,但是启动失败,连原因都没有,查看zookeeper目录下的logs发现报错:Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
)    这里注意一个大坑:
    在zookeeper3.5.5版本中,官网下载有两个文件:
要选择第一个压缩包下载,第二个压缩包是源码包,第一个压缩包下载后按照正常步骤就可以运行起来,太坑了。
二、zookeeper操作常用命令
    1.启动服务
    ./zkServer.sh start
    2.服务状态
    ./zkServer.sh staus
    3.停止服务
    ./zkServer.sh stop
    4.重启服务器
    ./zkServer.sh restar
    5.连接服务器
    ./zkCli.sh -timeout 0 -r -server ip:port 
三、zookeeper集群部署
    1.修改虚拟机的IP地址为静态IP,否则搭建zookeeper集群会因为IP地址发生变化而报错。
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
  只能存在一个ifcfg-ens33 文件   例如: ifcfg-ens33 / ifcfg-ens32 /ifcfg-ens33.bck     多余的文件必须删除
    修改如下:
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static               #这里修改为static,代表是静态的IP
    IPADDR=192.168.162.128      #添加自定义IP地址
    NETMASK=255.255.255.0   #添加子网掩码
    GATEWAY=192.168.162.2   #添加网关
    DNS1=192.168.162.2        #添加DNS1可以与网关一致
    DNS2=8.8.8.8                 #添加DNS2 
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=48f38312-9b20-431c-b873-f71c64f1f1f8
    DEVICE=ens33
    ONBOOT=yes
    2.配置host文件 (选配)
    vim etc/host
    增加如下内容:
    192.168.162.128 vm01
    192.168.162.129 vm02
    192.168.162.130 vm03
    将IP地址与别名进行绑定,这里有个问题,配置了host之后ping不同,采用IP就好使,这个根据实际情况看吧。
 
    3.修改zoo.cfg文件
    增加如下内容
    server.1=vm01:2888:3888
    server.2=vm02:2888:3888
    server.3=vm03:2888:3888
    公式:server.ID=host文件中设置的名称,如果没设置为IP:集群内通信的端口:选举投票的端口
    4.在data文件夹下建myid文件,里面内容与ID相同
    
    5.关闭防火墙
    systemctl status firewalld  查看防火墙状态
    systemctl stop firewalld 停止防火墙
    systemctl disable firewalld 禁止使用防火墙
    6.分别启动三台虚拟机的zookeeper服务
  
原文地址:https://www.cnblogs.com/mh-study/p/11193255.html