在大数据的环境下,我们经常会涉及到zookeeper的部署。在开发与测试环境还好,但是在生产环境的话,我们就需要部署zookeeper集群了,并且zookeeper集群的个数一定要为奇数,所以本文我们演示下zookeeper集群的部署。这里我们使用一个3个节点的方式部署zookeeper集群。
1)准备服务器
这里我们准备3台服务器即可,示例如下:
序号 | 节点 | ip |
1 | node1 | 172.19.0.6 |
2 | node2 | 172.19.0.8 |
3 | node3 | 172.19.0.10 |
2)安装jdk
zookeeper毕竟是java编写的,所以这里还是需要配置jdk环境,这里我们给3台服务器都配置上jdk8,示例图如下:
3)配置ssh免密码登录
这里我们配置下ssh免密码登录,实现3个节点之间任意两个服务器都可以ssh免密码登录,详情可参考:《ssh免密码登录》。
4)下载安装包
这里我们去官网下载zookeeper的安装包,下载地址是:zookeeper官网下载。
这里直接下载一个最新版本就可以了。下载完成并解压,上传到node1服务器上:
5)配置部署zookeeper集群
接下来我们就准备配置zookeeper集群了,首先进入到${zookeeper_home}/conf目录下:
这里我们把zoo_sample.cfg重命名一下zoo.cfg,示例图如下:
然后我们编辑这里的zoo.cfg文件,最后编辑的内容是:
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/root/zookeeper/data dataLogDir=/root/zookeeper/logs # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 ## Metrics Providers # # https://prometheus.io Metrics Exporter #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider #metricsProvider.httpHost=0.0.0.0 #metricsProvider.httpPort=7000 #metricsProvider.exportJvmInfo=true server.1=node1:3181:4181 server.2=node2:3181:4181 server.3=node3:3181:4181
这些选项根据实际情况进行修改即可。
接着我们在${zookeeper_home}/data目录下创建一个myid的文件,并且标注上zoo.cfg里面配置的server.${序号}这个序号。
echo 1 > myid
接着我们把node1上的zookeeper包传输到node2和node3上:
scp -r zookeeper node2:~ scp -r zookeeper node3:~
传输完了之后,我们登录node2服务器,把myid修改为2,登录node3服务器,把myid修改为3
#在node2服务器上执行 echo 2 > myid #在node3服务器上执行 echo 3 > myid
6)启动zookeeper
接下来我们就启动3个节点上的zookeeper
#在node1,node2,node3服务器上分别执行 ./zkServer.sh start
当三台服务器都出现started就启动了:
接着我们看看zookeeper的状态,确定最终是否启动成功:
#在node1,node2,node3服务器上分别执行 ./zkServer.sh status
如果有1个leader,2个follower角色的话,就代表zookeeper集群部署好了,示例图如下:
以上就是zookeeper集群的部署教程
还没有评论,来说两句吧...