您的位置:首页 > 其它

zookeeper完全分布式集群搭建-zookeeper-3.4.6

2017-03-23 14:44 302 查看
之前在学习hadoop,spark的过程中,包括接下来的kafka,zookeeper用到的地方不少,特此记录zookeeper集群搭建过程。

版本:zookeeper-3.4.6

环境:

VM搭建的三个虚拟机,均采用centos-6.8-64.iso

机器IP与名称对应关系如下:

192.168.152.192       master

192.168.152.193       slave1

192.168.152.194       slave2

1.    安装JDK,每台机器都要安装,请自行安装。

2.    先在一台机器上配置好相关文件再远程复制到其他机器上,期间用到SSH无密码互相访问,可以参考SSH无密码互相访问

2.1  在master机器上进行如下操作:

[root@master] # mkdir /home/zookeeper

[root@master] # cd /home/master

[root@master] # wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
[root@master] # tar zxvf zookeeper-3.4.6.tar.gz -C /home/zookeeper

[root@master] # cd ../zookeeper

[root@master] # mkdir zkdata

[root@master] # touch zkdata/myid       #用于存储每个机器的标志

[root@master] # mkdir zkdatalog           #日志目录

进入zookeeper-3.4.6目录的conf目录下

[root@master] # cd zookeeper-3.4.6/conf

复制一份样本配置文件

[root@master] # cp zoo_sample.cfg zoo.cfg

[root@master] # vim zoo.cfg

修改以下内容:

tickTime=2000      #单位毫秒,服务器之间或者客户端与服务器之间的心跳间隔

initLimit=10           #初始化Follower最长时间:10 * 2000 ms

syncLimit=5          #Leader与Follower之间发送消息请求和应答时间长度:5 * 2000 ms

dataDir=/home/zookeeper/zkdata               #日志存储路径

dataLogDir=/home/zookeeper/zkdatalog    #事务日志存储路径

clientPort=12181                                         #客户端端口

server.1=192.168.152.192:12888:13888    #server后面的1表示zookeeper集群间的标志,可自定义

server.2=192.168.152.193:12888:13888   
#server后面的2表示zookeeper集群间的标志,可自定义

server.3=192.168.152.194:12888:13888   
#server后面的3表示zookeeper集群间的标志,可自定义

autopurge.snapRetainCount=15                 #每次清除日志后保留的文件数目

autopurge.purgeInterval=1                          #清除日志频率,单位小时

退出保存    :wq

因为本机地址为192.168.152.192所以把"1"写进/home/zookeeper/zkdata/myid文件里

[root@master] # echo "1" > /home/zookeeper/zkdata/myid

至此master机器上配置完毕,把配置好的zookeeper-3.4.6目录远程复制到slave1和slave2即可

2.2   切换到slave1,先创建必要的目录和文件

[root@slave1] # mkdir /home/zookeeper

[root@slave1] # mkdir /home/zookeeper/zkdata

[root@slave1] # touch /home/zookeeper/zkdata/myid

[root@slave1] # mkdir /home/zookeeper/zkdatalog

[root@slave1] # echo "2" > /home/zookeeper/zkdata/myid

2.3   切换到slave2,先创建必要的目录和文件

[root@slave2] # mkdir /home/zookeeper

[root@slave2] # mkdir /home/zookeeper/zkdata

[root@slave2] # touch /home/zookeeper/zkdata/myid

[root@slave2] # mkdir /home/zookeeper/zkdatalog

[root@slave2] # echo "3" > /home/zookeeper/zkdata/myid

2.4   回到master机器上实施远程复制命令

[root@master] # scp -r /home/zookeeper/zookeeper-3.4.6 slave1:/home/zookeeper

[root@master] # scp -r /home/zookeeper/zookeeper-3.4.6 slave2:/home/zookeeper

3    在三台机器上分别启动zkServer.sh脚本

[root@master] # cd /home/zookeeper/zookeeper-3.4.6/bin

[root@master] # ./zkServer.sh start

[root@slave1] # cd /home/zookeeper/zookeeper-3.4.6/bin

[root@slave1] # ./zkServer.sh start

[root@slave2] # cd /home/zookeeper/zookeeper-3.4.6/bin

[root@slave2] # ./zkServer.sh start

用zkServer.sh status查看状态如下格式

------------master------------

[root@master] #./zkServer.sh status

JMX enabled by default

Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: follower

------------slave1------------

[root@slave1] #./zkServer.sh status

JMX enabled by default

Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: leader

------------slave2------------

[root@slave2] #./zkServer.sh status

JMX enabled by default

Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: follower

zookeeper集群每次启动时会根据算法自动选举出一个leader,当某一个机器挂了,只要存活机器数目超过一半就可以保证集群正常运行。

搭建完毕
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zookeeper 集群 ssh