1.下载Zookeeper
2.解压缩,进入zookeeper/conf 目录下修改 zoo.cfg配置文件
3.相关配置讲解
tickTime=2000 #ZooKeeper服务器心跳时间 ,单位为ms
initLimit=10 #投票选举新Leader的初始化时间
syncLimit=5 #Leader与Follower心跳检测最大容忍时间 响应不能超过syncLimit*tickTime 否则leader认为follwer死掉
clientPort=2181 #端口
dataDir=/tmp/ZooKeeper/data #数据目录
dataLogDir/tmp/ZooKeeper/log #日志记录
#配置zookeeper的集群
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
4. 在zookeeper的工作目录中创建myid
mkdir /opt/zookeeper
cd /opt/zookeeper
vi myid
cat myid
1
cd /opt/zookeeper
vi myid
cat myid
1
然后将这个文件分别传递到node2 node3 修改myid的值为 2和3
scp -r zookeeper
root@node3:/opt/
然后传递zookeeper传递到node2 node3
5. 然后配置zk的环境变量
进入etc/profile
export JAVA_HOME=/usr/lib/jvm/java7
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:/home/zk/bin #配置zk的环境变量
然后让环境变量立即生效使用
source /etc/profile
然后同步这个文件到 node2 node3 在分别使用source 生效
6. 然后这个时候就可以启动zookeeper了 要在三个节点上分别启动
[
root@node3 home]# zkServer.sh start
JMX enabled by default
Using config: /home/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[ root@node3 home]# jps
2848 Jps
2827 QuorumPeerMain # 这个就是zookeeper的java进程的名字
JMX enabled by default
Using config: /home/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[ root@node3 home]# jps
2848 Jps
2827 QuorumPeerMain # 这个就是zookeeper的java进程的名字
7.安装验证
通过这个命令来查看Leader 或Follower
|
zookeeper详解
zookeeper集群是一个独立的分布式协调服务集群,"独立"的含义就是说,如果想使用zookeeper实现分布式应用的协调与管理,简化协调与管理,任何分布式应用都可以使用,这就要归功于zookeeper的数据模型(Data Model)和层次命名空间(Hierarchical Namespace),在设计你的分布式应用协调服务时,首要的就是考虑如何组织层次命名空间
主机名称到ip地址映射配置
zookeeper集群中具有两个关键的角色:Leader和Follower,集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都相互连接,所以,在配置的zookeeper集群的时候,每一个结点的host到ip地址的映射都要配置上集群中其他结点的映射信息
所以要修改/etc/hosts文件,为各个结点配置上
192.168.12.128 node1
192.168.12.129 node2
192.168.12.130 node3
192.168.12.131 node4
zookeeper采用一种称为Leader election 的选举算法,在整个集群运行过程中,只有一个Leader,其他的都是Follower,如果zookeeper集群在运行过程中Leader出了问题,系统会采用该算法重新选出一个Leader,因此,各个结点之间要能够保证互相连接,必须配置上述映射
设置myid
创建一个myid文件,里面内容为一个数字,用来标识当前主机 conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字
查看启动日志
|
这个是正常的现象,由于zookeeper集群启动的时候,每个结点都试图去连接集群中的其他结点,先启动的肯定连不上后面还没启动,所以上面日志前面部分的异常是可以忽略的,通过后面部分可以看到,集群在选出一个Leader后,最后稳定了