安装准备
安装JDK环境,具体安装步骤请戳我
开始安装
注:因root用户权限过大,本次搭建zookeeper全部使用普通用户hadoop完成
首先通过wget命令获取tgz压缩包,也可以通过软件由Windows下载上传到虚拟机
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
然后解压到自己想要保存的文件夹(这里保存到之前创建的根目录下的soft文件夹)
tar -zxvf zookeeper-3.4.10.tar.gz -C /soft
cd到安装目录中的conf文件夹
cd /soft/zookeeper-3.4.10/conf
复制conf文件夹下的zoo_sample.cfg文件,并改名为zoo.cfg.编辑zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改内容如图所示
内容注解:
tickTime : Zookeeper的时间单元.Zookeeper中所有时间都是以这个时间单元的整数倍去配置的
initLimit : 当需要从Leader同步最新数据时,Leader允许在initLimit * tickTime 的时间内完成同步.如果需要同步的数据量很大,可以将这个值设置的大一些
syncLimit : 表示Follower和Observer与Leader交互时的最大等待时间.
dataDir : 用于存放内存数据快照的文件夹,同时配置集群的myid也存放在此文件夹下
dataLogDir : 用于存放数据日志目录
clientPort : 服务的监听端口
注:以上只列举了图片中出现的属性,其余属性可参考此链接
最后添加的三行server.A=B:C:D
A是一个数字,表示这个是第几号服务器
B是这台服务器的IP地址(如果使用主机名则需要配置/etc/Hosts文件)
C端口,用来供集群成员之间交换数据
D端口,用来在集群启动或leader崩溃时,选举新的leader
创建ID标识:(这步操作三台虚拟机都需要进行)
手动创建zoo.cfg文件中设置的dataDir文件夹和dataLogDir文件夹
在dataDir文件目录中创建文件myid,myid中写入在配置文件中设置的服务器ID
配置环境变量:
因为我用的是Hadoop用户,所以并没有把他写到系统环境变量中,而是写到了用户环境变量中,如果想写到系统变量中,则需要写到/etc/profile文件中
echo 'export ZOOKEEPER_HOME=/soft/zookeeper-3.4.10' >> ~/.bashrc
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> ~/.bashrc
分发配置:
为了方便,直接将.bashrc文件和zookeeper的安装目录直接通过scp命令拷贝到其他两台虚拟机上
scp ~/.bashrc hadoop@node1:/home/hadoop/.bashrc
scp ~/.bashrc hadoop@node2:/home/hadoop/.bashrc
scp -r /soft/zookeeper/ hadoop@node1:/soft/zookeeper/
scp -r /soft/zookeeper/ hadoop@node2:/soft/zookeeper/
然后在三台虚拟机上运行source命令,使环境变量生效
source ~/.bashrc
启动检测:
通过zookeeper/bin目录下的zkServer.sh来启动,关闭,重启服务
#启动zk服务
zkServer.sh start
#查看zk状态
zkServer.sh status
最终结果如图所示:
新手发帖,如果文章中有错误或是更好的建议,请在评论中指出,谢谢!