Debian下zookeeper集群安装配置
1. 操作环境
(1) 主机操作系统版本:Windows 10, 64-bit (Build 18362) 10.0.18362;
(2)虚拟机:VMware® Workstation 14 Pro;
(3)虚拟机操作系统版本:Debian 9.x 64 位;
(4)zookeeper版本:zookeeper-3.4.14.tar.gz (点击即可下载)
2. Java环境配置
可参考 《Debian下hadoop安装》中的jdk安装和运行环境配置,用java -version
检查是否安装成功;echo JAVA_HOME
或者export
命令检查Java环境变量配置;
3. 修改IP为固定地址
3.1 VMware网络配置
(1)管理员打开VMware(只有管理员打开才能修改VMware的一下网络相关的配置),依次点击左上角的编辑、虚拟网络编辑器
(2)选中NAT模式,修改子网IP,修改成1.1.1.0(可自行选择,后续网关配套即可)
(3)点击DHCP设置,修改起始IP地址为1.1.1.2
3.2 虚拟机系统网络配置
(1)首先备份网络配置文件
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
(2)修改文件添加以下几项
auto lo
auto eth0 #开机自动连接网络、eth0为本机的网卡(这个可以通过ip address查看)
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static #static表示使用固定ip,dhcp表述使用动态ip
address 1.1.1.111 #设置ip地址
netmask 255.255.255.0 #设置子网掩码
gateway 1.1.1.2 #设置网关(此处用到的就是VMware中设置的)
nameserver 1.2.4.8 #DNS设置
(3)重新启动网络服务并验证
> service networking restart
> ping www.baidu.com
PING www.a.shifen.com (183.232.231.174) 56(84) bytes of data.
64 bytes from localhost (183.232.231.174): icmp_seq=1 ttl=128 time=79.5 ms
64 bytes from localhost (183.232.231.174): icmp_seq=2 ttl=128 time=36.9 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 36.948/58.232/79.517/21.284 ms
4. zookeeper集群搭建
4.1 zookeeper配置文件
(1)解压下载好的文件到root目录下
> tar -zxvf zookeeper-3.4.14.tar.gz -C /root/
(2)修改zookeeper配置文件zoo.cfg
> cd /root/zookeeper-3.4.14/conf/
> cp zoo_sample.cfg zoo.cfg
> vi zoo.cfg
在zoo.cfg中添加以下内容
server.1=1.1.1.111:2888:3888
server.2=1.1.1.112:2888:3888
server.3=1.1.1.113:2888:3888
Tips:
zoo.cfg配置文件详解:
-
clientPort:
clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求;
-
tickTime
tickTime 是zookeeper中的基本时间单元,代表发送心跳的间隔时间,单位是毫秒;
-
initLimit
initLimit是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower
服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过5个心跳的时间(也就是 tickTime)长度后 Zookeeper
服务器还没有收到客户端的返回信息,那么表明这个客户端和leader连接失败。总的时间为:10*2000=20秒;
-
dataDir
dataDir是zookeeper持久化存放数据存放的目录;
-
syncLimit
Leader和Follower之间发送消息时,请求和应答的时间长度,最长不能超过多少个tickTime的时间长度,默认值为5,所以总的时间为5*2000=10秒;
(3)创建并修改myid文件
> cd /tmp
> mkdir zookeeper
> mkdir data
> touch myid
> echo 1 > myid
4.2 虚拟机克隆
(1)关闭虚拟机准备复制克隆
(2)在已有的虚拟机下右键点击“管理”→“克隆”,出现如下画面,点击选择“虚拟机中的当前状态”→选择“创建完整克隆”→确定好虚拟机名称和安装位置→克隆完成
(3)修改克隆的虚拟机IP地址为1.1.1.112,参考3.2的网络配置
(4)修改myid文件,将值改为 2
> echo 2 > myid
(5)重复(1)-(4),修改克隆机IP为1.1.1.113,myid值为3,与上面的zoo.cfg相对应
4.3 启动zookeeper集群
(1)分别在server1,server2,server3上执行以下命令,先启动server2和3:
> cd /root/zookeeper-3.4.14/bin/
> ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
> ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower#两个follower和一个leader即集群搭建成功
(2)连接zookeeper
./zkCli.sh server 1.1.1.111