zookeeper学习之集群环境搭建
2017-08-15 21:17
465 查看
一、安装环境
zookeeper:3.4.6JDK:1.8
linux:centos6.5 64位
主机:
server0:192.168.0.224
server1:192.168.0.225
server2:192.168.0.226
二、安装
1、将ZK解压到/usr/local/zookeeper下 2、修改配置文件(配置环境变量) /etc/profile JAVA_HOME=/usr/local/jdk1.8 ZOOKEEPER_HOME=/usr/local/zookeeper PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME ZOOKEEPER_HOME PATH CLASSPATH 3、source /etc/profile 让配置生效 4、修改zk的配置文件名 /usr/local/zookeeper/conf/zoo_sample.cfg [root@rocketmq-nameserver1 conf]# mv zoo_sample.cfg zoo.cfg 5、修改配置 zoo.cfg #存放数据的路径 dataDir=/usr/local/zookeeper/data 6、在/usr/local/zookeeper 下 创建 myid文件 server0:192.168.0.224 myid=0 server1:192.168.0.225 myid=1 server2:192.168.0.226 myid=2 7、zoo.cfg 配置集群节点 在该文件末尾添加 server.0=192.168.0.224:2888:3888 server.1=192.168.0.225:2888:3888 server.2=192.168.0.226:2888:3888 8、zk的启动 对于配置环境变量的启动 : zkServer.sh start 没有配置环境变量 可以在 zk 的bin 目录中启动 [root@rocketmq-nameserver1 bin]# ./zkServer.sh 启动这三台服务器
1、启动异常:
[root@localhost bin]# ./zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
如果遇到该情况试着开启2181端口(或者关闭防火墙)
/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT 写入修改 /etc/init.d/iptables save 保存修改 service iptables restart 重启防火墙,修改生效 service iptables stop 关闭防火墙
2、查看是否启动成功:三个服务器分别查看
[root@localhost bin]# ./zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower
三、配置文件
# The number of milliseconds of each tick #tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳。 tickTime=2000 # The number of ticks that the initial # synchronization phase can take #initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器) 初始化连接时最长能忍受多少个心跳时间间隔数。 #当已经超过10个心跳的时间(也就是tickTime)长度后 zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20秒。 initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement #syncLimit这个配置项标识leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。 syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. #dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里; dataDir=/usr/local/zookeeper/data # the port at which the clients will connect #clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求; clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 #server.A=B:C:D中的A是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口, D是在leader挂掉时专门用来进行选举leader所用的端口。 server.0=192.168.0.224:2888:3888 server.1=192.168.0.225:2888:3888 server.2=192.168.0.226:2888:3888
日志文件配置:cat /usr/local/zookeeper/bin/zkEnv.sh
ZOOBINDIR="${ZOOBINDIR:-/usr/bin}" ZOOKEEPER_PREFIX="${ZOOBINDIR}/.." if [ "x$ZOOCFGDIR" = "x" ] then if [ -e "${ZOOKEEPER_PREFIX}/conf" ]; then ZOOCFGDIR="$ZOOBINDIR/../conf" else ZOOCFGDIR="$ZOOBINDIR/../etc/zookeeper" fi fi if [ -f "${ZOOCFGDIR}/zookeeper-env.sh" ]; then . "${ZOOCFGDIR}/zookeeper-env.sh" fi if [ "x$ZOOCFG" = "x" ] then ZOOCFG="zoo.cfg" fi ZOOCFG="$ZOOCFGDIR/$ZOOCFG" if [ -f "$ZOOCFGDIR/java.env" ] then . "$ZOOCFGDIR/java.env" fi if [ "x${ZOO_LOG_DIR}" = "x" ] then ZOO_LOG_DIR="/usr/local/zookeeper/logs" fi if [ "x${ZOO_LOG4J_PROP}" = "x" ] then ZOO_LOG4J_PROP="INFO,CONSOLE"
四、常用命令
1、登录服务器 :zkCli.sh -server localhost:21812、查看帮助 help:
[zk: 192.168.1.13:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port
3、查看更目录的节点:
[zk: 192.168.1.13:2181(CONNECTED) 1] ls / [zookeeper]
4、创建节点: 创建一个新的Znode节点"zkTest",以及和它相关内容myData,
[zk: 192.168.1.13:2181(CONNECTED) 2] create /zkTest myData Created /zkTest
5、查看节点中的内容
[zk: 192.168.1.13:2181(CONNECTED) 4] get /zkTest myData cZxid = 0x300000002 ctime = Wed Aug 16 19:48:01 CST 2017 mZxid = 0x300000002 mtime = Wed Aug 16 19:48:01 CST 2017 pZxid = 0x300000002 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 6 numChildren = 0
6、修改节点内容
[zk: 192.168.1.13:2181(CONNECTED) 5] set /zkTest testSet cZxid = 0x300000002 ctime = Wed Aug 16 19:48:01 CST 2017 mZxid = 0x300000003 mtime = Wed Aug 16 19:52:22 CST 2017 pZxid = 0x300000002 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 7 numChildren = 0
7、删除节点
[zk: 192.168.1.13:2181(CONNECTED) 7] delete /zkTest [zk: 192.168.1.13:2181(CONNECTED) 9] ls / [zookeeper]
相关文章推荐
- Zookeeper学习之集群环境搭建
- JAVA学习笔记06——Linux环境下安装Nginx和集群搭建
- 分布式集群环境hadoop1.2.0、hbase0.94.4、zookeeper、elasticsearch搭建
- 集群RedHat6.5+JDK1.8+Hadoop2.7.3+Spark2.1.1+zookeeper3.4.6+kafka2.11+flume1.6环境搭建步骤
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--4
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- CentOS环境下zookeeper集群的搭建
- window环境搭建zookeeper,kafka集群
- zookeeper 集群环境搭建
- zookeeper集群环境搭建详细图文教程
- zookeeper伪分布式集群环境搭建
- Zookeeper集群环境搭建实践
- ZooKeeper环境搭建(单机/集群)(转)
- ZooKeeper学习(一)ZooKeeper 集群搭建
- centos7环境下zookeeper的搭建步骤之单机伪集群
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建--3
- ZooKeeper实战【Windows集群环境搭建】
- ZooKeeper 单机模式和集群模式的环境搭建
- reids集群学习(一)搭建redis集群环境
- 搭建Oracle RAC 学习环境之---数据库集群软件安装