首先检查一下几台虚拟机的时间是否同步,如果不同步需要设置一下
将安装包拖入sftp工具后解压
配置环境变量
vi /etc/local
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
如果权限不够需要修改权限
chown -R root:root zookeeper-3.4.10
配置完环境变量后切换目录到 /usr/local/zookeeper-3.4.10中
删除掉不需要的文件
rm -rf src *.jar.* docs
然后切换目录到 /conf
cp zoo_sample.cfg zoo.cfg
vi进入zoo.cfg里面
注意这句话,我们不能把文件储存在tmp目录下,所以修改目录
dataDir=/usr/local/zookeeper-3.4.10/zkdata
在文档最后添加
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
其中2888是传输内部的端口,3888负责传输选举数据
在$ZOOKEEPER_HOME下创建zkdata,并在该目录下创建myid,再把对应的id导入
[root@hadoop01 zookeeper-3.4.10]# mkdir zkdata
[root@hadoop01 zookeeper-3.4.10]# echo 1 > zkdata/myid
切换目录 修改zookeeper的环境变量
[root@hadoop01 zookeeper-3.4.10]# cd bin
[root@hadoop01 bin]# vi zkEnv.sh
这里不用修改
进行分发(在local目录下)
[root@hadoop01 local]# scp -r zookeeper-3.4.10 root@hadoop02:$PWD
[root@hadoop01 local]# scp -r zookeeper-3.4.10 root@hadoop03:$PWD
再分别给两台机器写入id
[root@hadoop02 zookeeper-3.4.10]# echo 2 > zkdata/myid
[root@hadoop03 zookeeper-3.4.10]# echo 3 > zkdata/myid
配置完成
在zookeeper的bin目录下启动
[root@hadoop01 bin]# zkServer.sh start
jps查看发现多了一个QuorumPeerMain进程
此时只启动了一台机器,zkServer还没有运行,再把另外两台机器启动(关闭防火墙)
其中hadoop02是leader
其中子机器必须这样启动
[root@hadoop02 bin]# ./zkServer.sh start
------------------------------------------------------------------------------------------------------------------------------------------
客户端中的shell命令
进入客户端命令
[root@hadoop01 bin]# zkCli.sh
输入help可获得各种命令帮助
[zk: localhost:2181(CONNECTED) 0] help
-------------------------------------------------------------------------------------------------------------------------------------------------
若使用idea写java api 则需要配置pom.xml文件(官网搜索zookeeper 找到相应版本 copy下依赖)
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
<type>pom</type>
</dependency>