ZooKeeper是分布式应用程序协调服务,在分布式系统中必不可少。它是为分布式应用提供一致性服务的软件,所以我们首先来安装配置它。
安装前,我们需要先准备好安装包,点击官方下载地址,本文所使用的版本是3.4.10
Quick Start
创建目录
- 在解压后的文件夹中创建一个名为tmp文件夹,作为其工作目录。
- 再创建一个名为zk_data文件夹,作为其数据存储目录。
配置
拷贝conf/zoo_sample.cfg文件,并重命名zoo.cfg (这里必须命名为zoo.cfg)
修改zoo.cfg文件,内容如下:
1
2
3
4
5
6
7
8tickTime=2000
dataDir=/opt/zookeeper-3.4.10/zk_data
clientPort=2181
initLimit=5
syncLimit=2
server.1=node0的IP:2888:3888
server.2=node2的IP:2888:3888
server.3=node3的IP:2888:3888将此配置分别配置到 node0, node2, node3中
按照规划ZooKeeper会被部署在node0,node2,node3上,所以需要在这三台服务器中都拷贝一份。
1
2scp -r /opt/zookeeper-3.4.10 root@node2:/opt
scp -r /opt/zookeeper-3.4.10 root@node3:/opt分别在这三个节点的dataDir指向的目录下创建myid文件,值分别为1,2,3
在node0,node2,node3中依次启动服务,命令如下:
1
bin/zkServer.sh start
查看服务是否已经启动
1
zkserver.sh status
如果遇到Error contacting service. It is probably not running 此错误,请查看对应版本的官方文档重新配置zoo.cfg。
如果是java.net.BindException: Address already in use 通过netstat -nltp | grep 2181检查是否该端口已被占用。
如果,遇到防火墙原因,请继续往下看。
关闭防火墙
关闭所有服务器的防火墙(重点)
firewall
查看防火墙状态
1
firewall-cmd --state
关闭防火墙
1
systemctl stop firewalld.service
禁止开机启动
1
systemctl disable firewalld.service
关闭iptables
1
service iptables stop
官方文档
如果需要了解更详细的内容,请访问官方文档,文档版本3.4.10
小结
完成上述配置后,ZooKeeper应该可以正常启动了,下篇文件我们开始《部署 HDFS》
本系列文章《目录》