單臺部署集羣
不建議使用單臺部署多臺服務,因爲並沒有實現冗餘。使用多臺服務器部署zookeeper集羣纔是生產環境使用的方案。
系統環境
[root@node1 ~]# uname -rm
2.6.32-504.el6.x86_64 x86_64
[root@node1 ~]# cat/etc/redhat-release
CentOS release 6.6 (Final)
設置java堆
交換會嚴重降低zookeeper的性能,所以設置java對大小非常重要。爲了確定正確的值,使用負載測試,確定低於引起交換的使用限制。保守情況下,堆最大值可以使用3G或4G的機器。
[root@node1 ~]# vim /app/zookeeper/conf/java.env
exportJVMFLAGS="-Xmx512m"
設置配置文件
[root@node1 ~]# cd /app/zookeeper/conf/
[root@node1 conf]# cp zoo.cfg zoo.cfg.bak
[root@node1 conf]# mv zoo.cfg zoo1.cfg
[root@node1 conf]#vim zoo1.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zoo1
clientPort=2181
server.1=192.168.56.3:2881:3881
server.2=192.168.56.3:2882:3882
server.3=192.168.56.3:2883:3883
[root@node1 conf]# cp zoo1.cfg zoo2.cfg
[root@node1 conf]# cp zoo1.cfg zoo3.cfg
[root@node1 conf]# sed -i 's/2181/2182/g' zoo2.cfg
[root@node1 conf]# sed -i 's/2181/2183/g' zoo3.cfg
[root@node1 conf]# sed -i 's/zoo1/zoo2/g' zoo2.cfg
[root@node1 conf]# sed -i 's/zoo1/zoo3/g' zoo3.cfg
[root@node1 conf]# cd
創建數據目錄
[root@node1 ~]# mkdir /data/{zoo1,zoo2,zoo3}
創建myid文件
[root@node1 ~]# echo 1>/data/zoo1/myid
[root@node1 ~]# echo 2>/data/zoo2/myid
[root@node1 ~]# echo 3>/data/zoo3/myid
啓動
[root@node1 ~]# zkServer.sh start /app/zookeeper/conf/zoo1.cfg
[root@node1 ~]# zkServer.sh start /app/zookeeper/conf/zoo2.cfg
[root@node1 ~]# zkServer.sh start /app/zookeeper/conf/zoo3.cfg
環境變量設置以軟件下載地址見部署單臺zookeeper
由於個人技術所限有不足之處還請各位指出。可以通過以下兩個羣找到筆者。
北京linux運維求職招聘羣:153677549
Linux運維開發羣:298324302