ls0398 发表于 2019-1-8 12:18:57

zookeeper单机部署及集群(单机伪集群)部署

  一、单机部署
  下载源码
  wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
  解压
  tar -xvzfzookeeper-3.4.9.tar.gz -C /usr/local/
  软连接
  cd /usr/local/
  ln -s zookeeper-3.4.9zookeeper
  修改配置文件
  cd /usr/local/zookeeper/conf
  cpzoo_sample.cfgzoo.cfg
  vim zoo.cfg
  暂时只需要修改数据和日志目录
  dataDir=/data/zookeeper
  启动程序

  /usr/local/zookeeper/bin/zkServer.sh start
  期间出现启动的问题,报错启动失败 nohup: 无法运行命令"java",可修改zkServer.sh第140行的
  nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
  --$JAVA将此变量修改为适合自己主机的即可,如修改为$JAVA_HOME/bin/java
  启动成功后进行连接测试
  /usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
  Connecting to 127.0.0.1:2181
  ...
  
  代表服务链接成功
  

  

  二、集群(单机多进程伪集群)
  创建目录

  mkdir zookeeper-3181 zookeeper-3182 zookeeper-3183
  #zookeeper-3181的配置为
  tickTime=2000
  initLimit=10
  syncLimit=5
  dataDir=/path/zookeeper/log/zookeeper-3181 #其他两个目录自定义
  clientPort=3181 #其他两个目录端口分别设置为3182和3183
  autopurge.snapRetainCount=3
  autopurge.purgeInterval=72
  server.1=localhost:2287:3387
  server.2=localhost:2288:3388
  server.3=localhost:2289:3389
  #启动zookeeper-3181
  shzookeeper-3181/bin/zkServer.sh start
  启动过程中,查看zookeeper.out ,报错如下:
  e.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /path/zookeeper/zookeeper-3181/bin/../conf/zoo.cfg
  at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:144)
  at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
  at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
  Caused by: java.lang.IllegalArgumentException: /path/zookeeper/log/zookeeper-3181/myid file is missing
  at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:362)
  at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:140)
  /path/zookeeper/log/zookeeper-3181/myid file is missing 这个文件没有存在,解决如下:
  echo 1 >/path/zookeeper/log/zookeeper-3181/myid
  echo 2 >/path/zookeeper/log/zookeeper-3182/myid
  echo 3 >/path/zookeeper/log/zookeeper-3183/myid
  执行完成后,重新启动
  shzookeeper-3181/bin/zkServer.sh start
  shzookeeper-3182/bin/zkServer.sh start
  shzookeeper-3183/bin/zkServer.sh start
  集群测试
  登录到3183端口

  sh zookeeper-3183/bin/zkCli.sh-server 127.0.0.1:3183
  #设置
   create /testprozookeeptest
  Created /testpro
   get /testpro
  zookeeptest
  cZxid = 0x100000002
  ctime = Fri Mar 17 10:05:03 CST 2017
  mZxid = 0x100000002
  mtime = Fri Mar 17 10:05:03 CST 2017
  pZxid = 0x100000002
  cversion = 0
  dataVersion = 0
  aclVersion = 0
  ephemeralOwner = 0x0
  dataLength = 11
  numChildren = 0
  
  登录到3182端口检查同步情况
  sh zookeeper-3183/bin/zkCli.sh-server 127.0.0.1:3182
   get /testpro
  zookeeptest
  cZxid = 0x100000002
  ctime = Fri Mar 17 10:05:03 CST 2017
  mZxid = 0x100000002
  mtime = Fri Mar 17 10:05:03 CST 2017
  pZxid = 0x100000002
  cversion = 0
  dataVersion = 0
  aclVersion = 0
  ephemeralOwner = 0x0
  dataLength = 11
  numChildren = 0
  
  

  三、节点接管测试
  目前情况为3182端口为主节点,测试此端口挂掉后,其他从节点是否正常升级为主节点
  --检查
  sh zookeeper-3182/bin/zkServer.sh status
  ZooKeeper JMX enabled by default
  Using config: /home/gdiex/zookeeper/zookeeper-3182/bin/../conf/zoo.cfg
  Mode: leader
  --停止
  sh zookeeper-3182/bin/zkServer.shstop
  ZooKeeper JMX enabled by default
  Using config: /home/gdiex/zookeeper/zookeeper-3182/bin/../conf/zoo.cfg
  Stopping zookeeper ... STOPPED
  #检查,发现3183升级为主节点
  sh zookeeper-3183/bin/zkServer.sh status
  ZooKeeper JMX enabled by default
  Using config: /home/gdiex/zookeeper/zookeeper-3183/bin/../conf/zoo.cfg
  Mode: leader
  #-----------华丽OVER线-----------#




页: [1]
查看完整版本: zookeeper单机部署及集群(单机伪集群)部署