zookeeper集群搭建
1、单节点搭建(独立模式)
1.1、前提
单台Linux服务器
安装jdk,配置环境变量JAVA_HOME
1.2、安装配置
tar -zxvf zookeeper-3.4.6.tar.gz
将./conf目录下的zoo_sample.cfg复制重命名为zoo.cfg。
除ZOOKEEPER_HOME外,无需其他任何配置。
1.3、启动测试
#启动zk ./bin/zkServer.sh start #查看状态 ./bin/zkServer.sh status
可以看出zk处于独立模式。
2、集群搭建(集群模式)
2.1、前提
奇数台Linux服务器
每台服务器安装jdk,配置环境变量
修改每台服务器的主机名(如:分别为slave01、slave02、slave03),相互之间能进行SSH无密码登录。
2.2、安装配置
在每台服务器上均执行以下全部操作
1、解压安装
tar -zxvf zookeeper-3.4.6.tar.gz
2、配置zoo.cfg
复制./conf目录下的zoo_sample.cfg并重命名为zoo.cfg,修改内容如下:
其中dataDir的目录请手动创建,用户也可以自行指定dataLogDir的值,并创建相应目录。暂不配置dataLogDir和日志自动清除。
3、修改zkEnv.sh
修改./bin/目录下的zkEnv.sh文件,添加环境变量JAVA_HOME
4、添加myid文件
在每个zk节点的dataDir目录中,添加节点的唯一标识id,该id与zoo.cfg中的server配置相对应。
echo 1 > /usr/local/bigdata/ zookeeper-3.4.6/zkdata/myid #slave01操作 echo 2 > /usr/local/bigdata/ zookeeper-3.4.6/zkdata/myid #slave02操作 echo 3 > /usr/local/bigdata/ zookeeper-3.4.6/zkdata/myid #slave03操作
2.3、启动测试
在每台服务器上启动zk,并查看每个zk节点的状态。
./bin/zkServer.sh start #启动zk ./bin/zkServer.sh status #查看状态
可以看到,一个节点leader,其余为follwer。
测试:当Leader节点宕机时,查看剩余节点是否通过选举产生新的Leader节点?重启宕机的zk节点,查看其角色是否变为Follower?
杀死Leader节点的zk进程,10秒(如何推算出是10s?)后,剩余节点将选举出新的Leader
剩余节点选举出新的Leader节点:
宕机的节点重启zk后,将变为Follower: