一、安装环境

zookeeper:3.4.6

JDK:1.8

linux:centos6.5  64位

主机:

server0:192.168.0.224
server1:192.168.0.225
server2:192.168.0.226

二、安装

  1. 1、将ZK解压到/usr/local/zookeeper
  2. 2、修改配置文件(配置环境变量) /etc/profile
  3. JAVA_HOME=/usr/local/jdk1.8
  4. ZOOKEEPER_HOME=/usr/local/zookeeper
  5. PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
  6. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  7. export JAVA_HOME ZOOKEEPER_HOME PATH CLASSPATH
  8. 3source /etc/profile 让配置生效
  9. 4、修改zk的配置文件名 /usr/local/zookeeper/conf/zoo_sample.cfg
  10. [root@rocketmq-nameserver1 conf]# mv zoo_sample.cfg zoo.cfg
  11. 5、修改配置 zoo.cfg
  12. #存放数据的路径
  13. dataDir=/usr/local/zookeeper/data
  14. 6、在/usr/local/zookeeper 创建 myid文件
  15. server0:192.168.0.224 myid=0
  16. server1:192.168.0.225 myid=1
  17. server2:192.168.0.226 myid=2
  18. 7zoo.cfg 配置集群节点 在该文件末尾添加
  19. server.0=192.168.0.224:2888:3888
  20. server.1=192.168.0.225:2888:3888
  21. server.2=192.168.0.226:2888:3888
  22.  
  23. 8zk的启动
  24. 对于配置环境变量的启动
  25. zkServer.sh start
  26. 没有配置环境变量 可以在 zk bin 目录中启动
  27. [root@rocketmq-nameserver1 bin]# ./zkServer.sh 启动这三台服务器

1、启动异常:

  1. [root@localhost bin]# ./zkServer.sh status
  2. JMX enabled by default
  3. Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
  4. Error contacting service. It is probably not running.

如果遇到该情况试着开启2181端口(或者关闭防火墙)

  1. /sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT 写入修改
  2. /etc/init.d/iptables save 保存修改
  3. service iptables restart 重启防火墙,修改生效
  4.  
  5. service iptables stop 关闭防火墙

2、查看是否启动成功:三个服务器分别查看

  1. [root@localhost bin]# ./zkServer.sh status
  2. JMX enabled by default
  3. Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
  4. Mode: follower

三、配置文件

  1. # The number of milliseconds of each tick
  2. #tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳。
  3. tickTime=2000
  4. # The number of ticks that the initial
  5. # synchronization phase can take
  6.  
  7. #initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器)
    初始化连接时最长能忍受多少个心跳时间间隔数。
  8. #当已经超过10个心跳的时间(也就是tickTime)长度后 zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20秒。
  9. initLimit=10
  10. # The number of ticks that can pass between
  11. # sending a request and getting an acknowledgement
  12. #syncLimit这个配置项标识leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。
  13. syncLimit=5
  14. # the directory where the snapshot is stored.
  15. # do not use /tmp for storage, /tmp here is just
  16. # example sakes.
  17. #dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里;
  18. dataDir=/usr/local/zookeeper/data
  19. # the port at which the clients will connect
  20. #clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求;
  21. clientPort=2181
  22. # the maximum number of client connections.
  23. # increase this if you need to handle more clients
  24. #maxClientCnxns=60
  25. # Be sure to read the maintenance section of the
  26. # administrator guide before turning on autopurge.
  27. #
  28. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  29. #
  30. # The number of snapshots to retain in dataDir
  31. #autopurge.snapRetainCount=3
  32. # Purge task interval in hours
  33. # Set to "0" to disable auto purge feature
  34. #autopurge.purgeInterval=1
  35. #server.A=B:C:D中的A是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,
    D是在leader挂掉时专门用来进行选举leader所用的端口。
  36. server.0=192.168.0.224:2888:3888
  37. server.1=192.168.0.225:2888:3888
  38. server.2=192.168.0.226:2888:3888

日志文件配置:cat /usr/local/zookeeper/bin/zkEnv.sh

  1. ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"
  2. ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."
  3.  
  4. if [ "x$ZOOCFGDIR" = "x" ]
  5. then
  6. if [ -e "${ZOOKEEPER_PREFIX}/conf" ]; then
  7. ZOOCFGDIR="$ZOOBINDIR/../conf"
  8. else
  9. ZOOCFGDIR="$ZOOBINDIR/../etc/zookeeper"
  10. fi
  11. fi
  12.  
  13. if [ -f "${ZOOCFGDIR}/zookeeper-env.sh" ]; then
  14. . "${ZOOCFGDIR}/zookeeper-env.sh"
  15. fi
  16.  
  17. if [ "x$ZOOCFG" = "x" ]
  18. then
  19. ZOOCFG="zoo.cfg"
  20. fi
  21.  
  22. ZOOCFG="$ZOOCFGDIR/$ZOOCFG"
  23.  
  24. if [ -f "$ZOOCFGDIR/java.env" ]
  25. then
  26. . "$ZOOCFGDIR/java.env"
  27. fi
  28.  
  29. if [ "x${ZOO_LOG_DIR}" = "x" ]
  30. then
  31. ZOO_LOG_DIR="/usr/local/zookeeper/logs"
  32. fi
  33.  
  34. if [ "x${ZOO_LOG4J_PROP}" = "x" ]
  35. then
  36. ZOO_LOG4J_PROP="INFO,CONSOLE"

四、常用命令

1、登录服务器  :zkCli.sh -server localhost:2181

2、查看帮助  help:

  1. [zk: 192.168.1.13:2181(CONNECTED) 0] help
  2. ZooKeeper -server host:port cmd args
  3. stat path [watch]
  4. set path data [version]
  5. ls path [watch]
  6. delquota [-n|-b] path
  7. ls2 path [watch]
  8. setAcl path acl
  9. setquota -n|-b val path
  10. history
  11. redo cmdno
  12. printwatches on|off
  13. delete path [version]
  14. sync path
  15. listquota path
  16. rmr path
  17. get path [watch]
  18. create [-s] [-e] path data acl
  19. addauth scheme auth
  20. quit
  21. getAcl path
  22. close
  23. connect host:port

3、查看更目录的节点:

  1. [zk: 192.168.1.13:2181(CONNECTED) 1] ls /
  2. [zookeeper]

4、创建节点: 创建一个新的Znode节点"zkTest",以及和它相关内容myData,

  1. [zk: 192.168.1.13:2181(CONNECTED) 2] create /zkTest myData
  2. Created /zkTest

5、查看节点中的内容

  1. [zk: 192.168.1.13:2181(CONNECTED) 4] get /zkTest
  2. myData
  3. cZxid = 0x300000002
  4. ctime = Wed Aug 16 19:48:01 CST 2017
  5. mZxid = 0x300000002
  6. mtime = Wed Aug 16 19:48:01 CST 2017
  7. pZxid = 0x300000002
  8. cversion = 0
  9. dataVersion = 0
  10. aclVersion = 0
  11. ephemeralOwner = 0x0
  12. dataLength = 6
  13. numChildren = 0

6、修改节点内容

  1. [zk: 192.168.1.13:2181(CONNECTED) 5] set /zkTest testSet
  2. cZxid = 0x300000002
  3. ctime = Wed Aug 16 19:48:01 CST 2017
  4. mZxid = 0x300000003
  5. mtime = Wed Aug 16 19:52:22 CST 2017
  6. pZxid = 0x300000002
  7. cversion = 0
  8. dataVersion = 1
  9. aclVersion = 0
  10. ephemeralOwner = 0x0
  11. dataLength = 7
  12. numChildren = 0

7、删除节点

  1. [zk: 192.168.1.13:2181(CONNECTED) 7] delete /zkTest
  2. [zk: 192.168.1.13:2181(CONNECTED) 9] ls /
  3. [zookeeper]

zookeeper学习之集群环境搭建的更多相关文章

  1. ZooKeeper 完全分布式集群环境搭建

    1. 搭建前准备 示例共三台主机,主机IP映射信息如下: 192.168.32.101 s1 192.168.32.102 s2 192.168.32.103 s3 2.下载ZooKeeper, 以  ...

  2. ZooKeeper 介绍及集群环境搭建

    本篇由鄙人学习ZooKeeper亲自整理的一些资料 包括:ZooKeeper的介绍,我们要学习ZooKeeper的话,首先就要知道他是干嘛的对吧. 其次教大家如何去安装这个精巧的智慧品! 相信你能研究 ...

  3. Zookeeper的单机&集群环境搭建

    单机环境的安装 首先下载ZK的二进制安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/ 将安装包上传到Linux上: 进行解 ...

  4. 大数据 -- zookeeper和kafka集群环境搭建

    一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...

  5. zookeeper伪分布式集群环境搭建

    step1.下载 下载地址:http://zookeeper.apache.org/releases.html 将下载的压缩包放到用户家目录下(其他目录也可以) step2.解压 $tar –zxvf ...

  6. 大数据hadoop入门学习之集群环境搭建集合

    目录: 1.基本工作准备 1.虚拟机准备 2.java 虚拟机-jdk环境配置 3.ssh无密码登录 2.hadoop的安装与配置 3.hbase安装与配置(集成安装zookeeper) 4.zook ...

  7. 大数据 -- Hadoop集群环境搭建

    首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...

  8. ZooKeeper学习之路(二)—— Zookeeper单机环境和集群环境搭建

    一.单机环境搭建 1.1 下载 下载对应版本Zookeeper,这里我下载的版本3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # w ...

  9. zookeeper集群环境搭建详细图文教程

    zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装z ...

随机推荐

  1. SQL学习笔记:分块提取查询结果

    实践中,数据库中可能有数十亿条记录.查询结果有可能达到千万条.如果用dbGetQuery( ) 一次性取出所有查询结果,内存可能吃不消.但是,如果容许分块处理数据来完成任务,那么下述方法不失为一个好的 ...

  2. 【 C 】高级字符串查找之查找标记(token)函数 strtok介绍

    我的csdn博客 一个字符串常常包含几个单独的部分,它们彼此被分隔开来.每次为了处理这些部分,你首先必须把它们从字符串中抽取出来. 这个任务有#include<string.h>中的str ...

  3. 20155305乔磊2016-2017-2《Java程序设计》第三周学习总结

    20155305乔磊 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属 ...

  4. NetWork——关于HTTP、HTTPS的知识总结

    . )根据用户的当前的网络质量来判断下载什么质量的图片. 最后,如果觉得有所收获,请点下面的赞多多支持~谢谢各位

  5. BZOJ4034_树上操作_KEY

    题目传送门 这道题可以树链剖分+线段树. 其他操作模板,第二个操作只需要将x~x+size[x]-1区间加值即可. code: #include <cstdio> #include < ...

  6. 【BZOJ4560】[NOI2016]优秀的拆分

    [BZOJ4560][NOI2016]优秀的拆分 题面 bzoj 洛谷 题解 考虑一个形如\(AABB\)的串是由两个形如\(AA\)的串拼起来的 那么我们设 \(f[i]\):以位置\(i\)为结尾 ...

  7. Drupal7 针对特定条件才显示区块

    当D7中开启PHP filter模块. Text format就会多出“PHP Code”选项. 而且,新建block时也会多出"Pages on which PHP code return ...

  8. Electron小记

    一.安装 1.安装NodeJS 2.安装electronjs:npm install -g electron --unsafe-perm=true --allow-root 安装完,环境为: Node ...

  9. SQL创建数据库、建表、填入内容

    --创建数据库 create database Information go --使用数据库 use Information go --创建表 create table Student ( Sno ) ...

  10. selenium webdriver API详解(一)

    本系列主要讲解webdriver常用的API使用方法(注意:使用前请确认环境是否安装成功,浏览器驱动是否与谷歌浏览器版本对应) 一:打开某个网址:get() from selenium import ...