zookeeper安装部署步骤

zookeeper安装部署步骤

下载zk包,分发到各个机器 确定或创建一个zookeeper的数据存放路径,并在该路径下创建一个myid文件,其中设置当前zookeeper节点的编号,编号范围1~255。整个zookeeper集群唯一 在数据文件夹创建一个initialize文件,初始化集群时使用,启动后,集群会自动删除该文件。后续重启集群,不需要该文件 initialize文件

3.6.0的zk,在启动后,如果发现自己的data 目录是空的,则不会参与集群选举,知道该节点连上一个master, 然后从其同步过完整的数据后,才具有选举权 ,之所以这么做的原因是。万一谁不小心删了数据文件,这个时候重启该节点,如果运行该节点参与选举,要是该节点被选成master, 会导致怎个集群数据丢失。

但第一次启动集群,大家确实都没数据,如果都没有选举权的话,第一次选举就不会进行,所以要在data 目录下创建一个initialize文件,暂时屏蔽调3.6.0的数据丢失保护功能。集群启动,正常选举后,该文件会被删除,进入数据丢失的保护机制
一般可直接配置zk发型包conf下的zoo.cfg文件
tickTime=2000 dataDir=/var/lib/zookeeper/data dataLogDir=/var/lib/zookeeper/log #默认dataLogDir和dataDir在一起,最好将其分开,以提高zk性能。因为同时写数据和日志到一个磁盘,磁盘会有些瓶颈限制 autopurge.purgeInterval=1 #开启定期清理功能,以免数据和日志文件过大 autopurge.snapRetainCount=1000 clientPort=2181 #zk集群对外提供服务的端口 initLimit=5 syncLimit=2 server.1=zoo1:2888:3888 # server.1 中的1,即是该机器在数据文件夹中配置的myid。 zoo1,zoo2,zoo3是zk集群的节点hostname或ip。 2888是follower用来跟leader通信的端口,3888是用来选举leader的端口 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
影响性能的点 数据盘独立
磁盘的读写性能会严重影响到zk的性能。所以尽量将zk的数据存储目录防止带单独的磁盘。有条件的话,将其日志文件路径也放置到单独磁盘。同其它程序共用一个磁盘,当磁盘读写性能出现瓶颈时,zk的性能会急速下降内存不要超机器限制
当zk申请的内存超过操作系统的空闲内存,那么操作系统会启用swap机制,即利用硬盘做为交换内存。这也将严重影响zk的性能。所以如果系统有4g内存,那么zk申请内存最好小于等于3G。两种启动方式 使用自带脚本

在bin下 ./zkServer.sh start
该zkServer.sh会首先执行zkEnv.sh
zkEnv.sh中有整个zk执行相关环境变量设置,从zkEnv.sh代码中可以看到
if [ -f ${ZOOCFGDIR}/zookeeper-env.sh ]; then . Z O O C F G D I R / z o o k e e p e r − e n v . s h i f [ x {ZOOCFGDIR}/zookeeper-env.sh if [ x ZOOCFGDIR/zookeeperenv.shif[xZOOCFG = x ] ZOOCFG= zoo.cfg ZOOCFG= Z O O C F G D I R / ZOOCFGDIR/ ZOOCFGDIR/ZOOCFG if [ -f $ZOOCFGDIR/java.env ] . $ZOOCFGDIR/java.env
它回去zk配置目录,也即CONF中找zookeeper-env.sh,和java.env。所以我们可以将相关的环境变量设置到这两个文件中(没有就创建)
.env文件其实跟shell差不多,启动定义的环境变量格式为key=value,最终生效,通过执行该文件,或者source 它都可以。

从zkEnv.sh中还可以得出的信息是,要设置zk server端的内存占用大小,是通过ZK_SERVER_HEAP来,因为zkEnv.sh有如下代码
#default heap for zookeeper server ZK_SERVER_HEAP= Z K S E R V E R H E A P : − 1000 e x p o r t S E R V E R J V M F L A G S = − X m x {ZK_SERVER_HEAP:-1000} export SERVER_JVMFLAGS= -Xmx ZKSERVERHEAP:1000exportSERVERJVMFLAGS=Xmx{ZK_SERVER_HEAP}m $SERVER_JVMFLAGS
当然其它一些-D的java 参数, 可以设置到这个变量上SERVER_JVMFLAGS使用java 命令
上述脚本实际上最终入口,是执行了zookeeper的jar。我们当然也可以直接通过java命令启动zookeeper的jar,并加装指定配置
java -cp zookeeper.jar:lib/*:conf org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.conf
https://zookeeper.apache.org/doc/r3.6.1/zookeeperAdmin.html#sc_zkMulitServerSetup

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值