初识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服务