设为首页 收藏本站
查看: 1144|回复: 0

[经验分享] zookeeper安装以及配置和注意事项

[复制链接]

尚未签到

发表于 2019-1-9 07:19:14 | 显示全部楼层 |阅读模式
  1,安装
wget
tar zxvf zookeeper-3.4.9.tar.gz
cd zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg  修改zoo.cfg配置文件

  如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/zookeeper-3.4.9/data
dataLogDir=/opt/zookeeper/zookeeper-3.4.9/logs
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=zk1:2888:3888:observer
server.2=zk2:2888:3888
server.3=zk3:2888:3888
server.4=zk4:2888:3888  编辑环境变量vim /etc/profile
export ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.9/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH  添加myid 文件

  在dataDir目录下,添加myid,文件内容要与配置文件中server.1的数字一样,仅仅是数字
  安装java8

yum install java1.8  启动zookeeper,并查看状态

zkServer.sh start
zkServer.sh status  2,集群配置注意事项
  一般来讲,3到5个zookeeper投票者(leader,follower),必须是单数,因为数量过半才能保证正常运行,公式N=2F+1  其中F是可以容错的数量

  配置observer(观察者)(跟follower没什么区别,只是不参与投票),为了减少选举过程中和资源,一般客户端都是连接observer,

  配置如下:

  要指定相关的机器是observer,并且在集群配置里注明
peerType=observer
server.1=zk1:2888:3888:observer  3,内存
  zk在读写数据的时候,不要用swap交换分区,因为zookeeper都是把数据放在内存中,如果发生和磁盘交换的话,性能会大打折扣,修改启动脚本,配置jvm,配置原则物理内存的80%
  vim zkServer.sh

  case $1 in
  start)
  echo  -n "Starting zookeeper ... "
  if [ -f "$ZOOPIDFILE" ]; then
  if kill -0 `cat "$ZOOPIDFILE"` > /dev/null 2>&1; then
  echo $command already running as process `cat "$ZOOPIDFILE"`.
  exit 0
  fi
  fi
  nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
  -cp "$CLASSPATH" $JVMFLAGS -Xmx512m -Xms512m $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
  4,磁盘
  zk 对磁盘要求比较高,因为会做磁盘镜像备份snapshot到磁盘,第一要用高速磁盘,第二要定期处理,虽然配置里有自动清理,但是会遇到zk使用高峰,建议自己写crontab来定期清理
autopurge.snapRetainCount=3#保留最新的3个镜像数据
autopurge.purgeInterval=1#每隔1小时清理一次  5,最后说下投票机制
  当有节点宕机了,所有服务都将进入选举模式,先断掉连接,然后开始选举,过程是server1挂了,server2 server3进入选举,每个server都会先投自己,选票结构(id,zxid),那么server2(2,0),server3(3,0),然后再把自己的选票发给所有的server,当每个server收到别人发来的选票会进行对比,对比顺序是先从zxid 开始(zxid是代表了数据的新旧,比如3>2,那么3就是最新的),如果zxid相同,在对比id,这是server2收到来自server3的选票(3,0),zxid相同,但是id比自己大,这是server2会更新自己的选票server2(3,0),再发给所有的server,进入下一轮选举,这是server3(3,0),没变化,所以不用更新,server2(3,0),那么这时server3变成leader,如果参与投票的机器比较多,那么就按照这个机制进行多轮投票

  

  运维经验,这里有个问题,如果在zk宕机选举过程中,clint不断的尝试重新,会导致zk进入死循环,因为选举的第一步就是先断掉所有连接,所以,客户端要用调用的方式,而不是无限的重新连接,或者客户端只连接observer(观察者),因为observer不参与投票,但是leader和follower在正常的投票,一旦新的leader被选出来,那么就不会有无线重新连接的情况出现




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660919-1-1.html 上篇帖子: ZooKeeper客户端事件串行化处理 下篇帖子: HBASE 0.98版本安装,三步曲:安装Zookeeper 3.4.5
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表