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

[经验分享] zookeeper单机多实例和分布式部署

[复制链接]

尚未签到

发表于 2019-1-9 07:28:40 | 显示全部楼层 |阅读模式
  介绍zookeeper单机多实例部署(实验性质)以及生产环境的分布式部署
  1. 准备工作:
  1)需要linux环境,推荐用ubuntu的系统。学习的话使用oracle的virtual box安装虚拟机,网上找下安装文档就可以装好了,而生产环境一般都会装好的。ubuntu下载链接:
  32位:http://mirrors.zju.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-i386.iso
  或
  64位:http://mirrors.hust.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-amd64.iso
  2) JDK:zookeeper需要java运行环境,这个建议1.6以上,配置好 JAVA_HOME 、CLASSPATH、 PATH 变量。
  jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  环境变量配置,home目录下的.profile即可:
  export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_40"
  export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  export ZOOKEEPER_HOME="/data/apache/zookeeper"
  export PATH="$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin"
  3) zookeeper安装包:http://zookeeper.apache.org/releases.html 下载稳定版本,现在的版本是3.4.5
  2. 各种解压,不多说,建议对解压后的目录(带有版本号的),建立软连接 zk ,方便后面的配置和升级。
  我解压后放在:  /data/apache/zookeeper下面,并修改文件权限为运行用户权限:
  sudo chown -R zqgame:zqgame zookeeper
  zqgame:zqgame是运行zookeeper的用户和用户所在组,查看权限:
  zqgame@develop-test-web:/data/apache$ ll
  total 16
  drwxr-xr-x  4 zqgame zqgame 4096 Jan 17 12:41 ./
  drwxr-xr-x 11 root   root   4096 Dec 13 14:49 ../
  drwxr-xr-x 11 zqgame zqgame 4096 Nov 20 15:50 hadoop-2.2.0/
  drwxr-xr-x 12 zqgame zqgame 4096 Jan 17 12:56 zookeeper/
  zqgame@develop-test-web:/data/apache$
  3. 端口检查,通常使用的端口 2181,2888,3888 ,检查是否占用,占用则下面的配置中更改端口。
  netstat -ano | grep 2181
  4.单机多实例配置及启动:
  #生成配置文件,配置文件名随便,这里是zoo.cfg
  cp /data/apache/zookeeper/conf/zoo_sample.cfg  /data/apache/zookeeper/conf/zoo.cfg
  vi /data/apache/zookeeper/conf/zoo.cfg
  配置文件内容:
  tickTime=2000
  initLimit=5
  syncLimit=5
  dataDir=/data/apache/zookeeper/data  # 目录需要手工建立,存放 zk 数据,主要是快照
  clientPort=2181
  # dataLogDir事务日志存放目录,最好配置,事务日志的写入速度严重影响zookeeper的性能
  dataLogDir=/data/apache/zookeeper/datalog
  server.1=192.168.130.170:2889:3889
  server.2=192.168.130.170:2890:3890
  server.3=192.168.130.170:2891:3891
  拷贝配置文件,生成三个配置文件:zoo-slave1.cfg: (另外两个 zoo-slave2.cfg 和 zoo-slave3.cfg)。
  zoo-slave1.cfg需要为dataDir和dataLogDir设置目录,改动内容如下:
  dataDir=/data/apache/zookeeper/data/slave1
  dataLogDir=/data/apache/zookeeper/datalog/slave1
  clientPort=2182
  zoo-slave2.cfg :
  dataDir=/data/apache/zookeeper/data/slave2
  dataLogDir=/data/apache/zookeeper/datalog/slave2
  clientPort=2183
  zoo-slave3.cfg :
  dataDir=/data/apache/zookeeper/data/slave3
  dataLogDir=/data/apache/zookeeper/datalog/slave3
  clientPort=2184
  如上配置相同的本机IP,不同的端口号,这里配置了三个实例
  如何区分到底是第几个实例呢,就要有个id文件,名字必须是myid
  echo "1" > /data/apache/zookeeper/data/slave1/myid
  echo "2" > /data/apache/zookeeper/data/slave2/myid
  echo "3" > /data/apache/zookeeper/data/slave3/myid
  在三个窗口下迅速启动:
  bin/zkServer.sh start zoo-slave1.cfg
  bin/zkServer.sh start zoo-slave2.cfg
  bin/zkServer.sh start zoo-slave3.cfg
  查看zookeeper选出来的leader,通过下面的脚本,分别指定配置文件,就可以查看哪一个实例是leader:
  bin/zkServer.sh status zoo-slave1.cfg
  可以看下如下输出信息:
  zqgame@develop-test-web:/data/apache/zookeeper$ bin/zkServer.sh status zoo-slave2.cfg
  JMX enabled by default
  Using config: /data/apache/zookeeper/bin/../conf/zoo-slave2.cfg
  Mode: leader
  5、分布式部署:
  与单机多实例差不多,不过不用三个目录,只需要一个目录,一个配置文件,三个不同IP,分发在不同的IP上,仍然是不同的myid。假设我有三台独立机器,那么zoo.cfg(只需要一个默认的配置文件zoo.cfg)配置文件如下所示:
  tickTime=2000
  initLimit=5
  syncLimit=5
  dataDir=/data/apache/zookeeper/data  # 目录需要手工建立,存放 zk 数据,主要是快照
  clientPort=2181
  # dataLogDir事务日志存放目录,最好配置,事务日志的写入速度严重影响zookeeper的性能
  dataLogDir=/data/apache/zookeeper/datalog
  server.1=192.168.130.101:2888:3888
  server.2=192.168.130.102:2888:3888
  server.3=192.168.130.103:2888:3888
  然后在三台机器上分别写入不同的myid:
  #在192.168.130.101执行下面一条
  echo "1" > /data/apache/zookeeper/data/myid
  #在192.168.130.102执行下面一条
  echo "2" > /data/apache/zookeeper/data/myid
  #在192.168.130.103执行下面一条
  echo "3" > /data/apache/zookeeper/data/myid
  这样分别在三台机器迅速启动zookeeper,此时不需要指定配置文件,默认配置文件就是zoo.cfg:
  bin/zkServer.sh start
  查看启动后的状态:
  bin/zkServer.sh status
  进入zookeeper的shell客户端:
  bin/zkCli.sh   #进入本机zookeeper的shell
  进入指定机器的shell客户端:
  bin/zkCli.sh -server 192.168.130.101
  在查看启动状态有错误的情况下,稍等一会再查看,因为zookeeper启动后需要一点时间选出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-660925-1-1.html 上篇帖子: Dubbo基础篇_02_Zookeeper注册中心安装测试 下篇帖子: zookeeper之系列六:一致性保证和leader选举
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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