由于Zookeeper要依赖JDK,所以先安装JDK,在控制台输入java–version命令查看系统是否安装有JDK。
一、安装JDK
(1)在java官网下载jdk8的tar包,这里是jdk-8u172-linux-x64.tar;
(2)在目录/usr/local/下新建目录java:mkdir/usr/local/java,并将tar包放在此目录下;
(3)解压tar包:tar –zxvf jdk-8u172-linux-x64.tar,得到jdk1.8.0_172文件;
(4)在/etc/profile文件中配置环境变量:vim /etc/profile,在文件中增加如下内容:
JAVA_HOME=/usr/local/jdk/
JAVA_BIN=/usr/local/jdk/bin
JRE_HOME=/usr/local/jdk/jre
PATH=$PATH:/usr/local/jdk/bin:/usr/local/jdk/jre/bin
CLASSPATH=/usr/local/jdk/jre/lib:/usr/local/jdk/lib:/usr/local/jdk/jre/lib/charsets.jar
export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH
(5)重新加载配置文件:source /etc/profile;
(6)在控制台输入java –version命令,看jdk是否安装成功,如下图:
二、安装Zookeeper集群
(1)在Zookeeper官网下载最新的tar包,这里是zookeeper-3.4.12.tar;
(2)将zookeeper-3.4.12.tar包放入/usr/目录下并解压:tar –zxvf zookeeper-3.4.12.tar,得到zookeeper-3.4.12文件;
(3)在zookeeper-3.4.12目录下新建data目录作为数据存放目录,新建dataLog目录作为日志目录,进入conf目录,拷贝(cp)
一份zoo_sample.cfg文件,命名为zoo.cfg;
zoo.cfg文件各配置项说明:
1) clientPort:必须配置,默认为2181,不支持系统属性方式配置。当前服务器对外提供服务端口,客户通过此端口与服务器建立连接。集群中不需要统一端口,可任意配置端口。
2) dataDir:无默认值,必须配置。服务器存储快照文件目录。默认情况下,如果没有配置dataLogDir,那么事务日志也会存储在这个目录中。建议将事务日志目录独立配置。
3) tickTime:默认值:2000(ms),不支持系统属性方式配置。用于配置zookeeper中最小时间单元长度,运行时的时间间隔是使用它的倍数来表示的。
4) initLimit:leader接收集群其他服务器初始化等待最大时间,配置为多少个tickTime。
5) syncLimit:leader和集群其他服务器通信最大时间,配置为多少个tickTime。
(4)修改zoo.cfg文件内容,将dataDir改为刚才新建的data目录的路径,添加dataLogDir为dataLog目录的路径;
(5)在zoo.cfg文件中以server.id=ip:port1:port2的形式写入zookeeper集群配置,配置了多少个zookeeper服务就写几个,其中id为服务的编号,取值范围在1~255之间,每个服务id不能相同;ip为配置了zookeeper服务的服务器ip地址;port1是zookeeper集群中leader与follower的通信端口;port2是集群选举leader时使用的端口;
(6)进入data目录,新建文件myid(touch myid),在myid文件中写入上一步配置的自身zookeeper服务的id值;
(7)进入到/zookeeper-3.4.12/bin/目录下,启动zookeeper:./zkServer.sh start,如下图:
启动成功。
(8)依次启动zookeeper,执行./zkServer.sh status,查看该zookeeper服务状态,如图:
另:
如果要在一台服务器上配置若干个zookeeper服务,步骤同上,但有几点要注意:
1) clientPort要设置为不同的值;
2) server.id=ip:port1:port2中,服务之间port1以及port2的值不能相同;
注意:
在集群配置过程中,注意给相应的端口开放系统防火墙。