centos7.2 zookeeper-3.4.12集群搭建_寻找手艺人的博客-爱代码爱编程_zookeeper jmx enabled by default using config: /ho
1、集群环境
1.1 Linux服务器列表
IP | HOSTNAME | 操作系统 |
---|---|---|
192.168.48.13 | node3.xzsyr.com | CentOS-7-x86_64-Minimal-1511 |
192.168.48.14 | node4.xzsyr.com | CentOS-7-x86_64-Minimal-1511 |
192.168.48.15 | node5.xzsyr.com | CentOS-7-x86_64-Minimal-1511 |
1.2 服务器节点环境
IP | HOSTNAME | JDK | 版本说明 |
---|---|---|---|
192.168.48.13 | node3.xzsyr.com | √ | java version “1.8.0_131” |
192.168.48.14 | node4.xzsyr.com | √ | java version “1.8.0_131” |
192.168.48.15 | node5.xzsyr.com | √ | java version “1.8.0_131” |
jdk安装配置,请参考Centos7 安装配置JDK1.8
2、安装zookeeper
2.1下载zookeeper
访问网址: http://mirror.bit.edu.cn/apache/zookeeper/
点击直接下载到本地
2.2上传并解压到指定目录
1、创建文件目录
mkdir -p /opt/module #创建module文件夹,用于安装组件
mkdir -p /opt/software #创建sofware文件夹,用于存放安装包
2、上传zk到software目录下
将zookeeper-3.4.12.tar.gz上传导入/opt/software目录下
推荐工具:WinSCP、xftp
3、解压到/opt/module目录下
tar -zxvf zookeeper-3.4.12.tar.gz -C /opt/module/
2.3修改配置
1、进入到zk配置目录下
cd /opt/module/zookeeper-3.4.12/conf
2、复制并重名名zoo_sample.cfg
cp zoo_sample.cfg zoo.cfg #服务默认读取zoo.cfg配置信息
3、编辑zoo.cfg配置
vim zoo.cfg
#文件配置如下
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#数据持久化路径
dataDir=/var/data/zookeeper
#日志保存路径,需要手动创建
dataLogDir=/var/log/zookeeper/log
# the port at which the clients will connect
#即zk对外服务端口
clientPort=2181
#cluster config
#第一个端口用于Follower和Leader之间的数据同步和其它通信
#第二个端口用于Leader选举过程中投票通信
server.1=node3.xzsyr.com:2888:3888
server.2=node4.xzsyr.com:2888:3888
server.3=node5.xzsyr.com:2888:3888
# 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
4、拷贝zk到另外两台服务器
scp -R zookeeper-3.4.12/ root@node4.xzsyr.com:/opt/module/
scp -R zookeeper-3.4.12/ root@node5.xzsyr.com:/opt/module/
5、创建myid文件
node3.xzsyr.com节点
cd /var/data/zookeeper
echo "1">myid
node4.xzsyr.com节点
cd /var/data/zookeeper
echo "2">myid
node5.xzsyr.com节点
cd /var/data/zookeeper
echo "3">myid
3、启动zk集群
1、切换到zk的bin目录下
cd /opt/module/zookeeper-3.4.12/bin
2、启动zk server
#node3节点
[root@node3 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
#node4节点
[root@node4 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
#node5节点
[root@node5 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
3、查看zk进程
[root@node3 bin]# jps
3347 Jps
3322 QuorumPeerMain #zk后台进程服务
4、操作zk
4.1 登录zk客户端
#切换到zk bin目录
cd /opt/module/zookeeper-3.4.12/bin
#执行zkCli.sh客户端连接
[root@node3 bin]# ./zkCli.sh
Connecting to localhost:2181
2018-06-11 20:37:17,122 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
2018-06-11 20:37:17,125 [myid:] - INFO [main:Environment@100] - Client environment:host.name=node3.xzsyr.com
2018-06-11 20:37:17,126 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_131
2018-06-11 20:37:17,127 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2018-06-11 20:37:17,127 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/opt/module/jdk1.8.0_131/jre
2018-06-11 20:37:17,127 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/opt/module/zookeeper-3.4.12/bin/../build/classes:/opt/module/zookeeper-3.4.12/bin/../build/lib/*.jar:/opt/module/zookeeper-3.4.12/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/module/zookeeper-3.4.12/bin/../lib/slf4j-api-1.7.25.jar:/opt/module/zookeeper-3.4.12/bin/../lib/netty-3.10.6.Final.jar:/opt/module/zookeeper-3.4.12/bin/../lib/log4j-1.2.17.jar:/opt/module/zookeeper-3.4.12/bin/../lib/jline-0.9.94.jar:/opt/module/zookeeper-3.4.12/bin/../lib/audience-annotations-0.5.0.jar:/opt/module/zookeeper-3.4.12/bin/../zookeeper-3.4.12.jar:/opt/module/zookeeper-3.4.12/bin/../src/java/lib/*.jar:/opt/module/zookeeper-3.4.12/bin/../conf:
2018-06-11 20:37:17,127 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-06-11 20:37:17,127 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2018-06-11 20:37:17,127 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2018-06-11 20:37:17,128 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2018-06-11 20:37:17,128 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2018-06-11 20:37:17,128 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.10.0-862.2.3.el7.x86_64
2018-06-11 20:37:17,128 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2018-06-11 20:37:17,128 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2018-06-11 20:37:17,128 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/opt/module/zookeeper-3.4.12/bin
2018-06-11 20:37:17,128 [myid:] - INFO [main:ZooKeeper@441] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@277050dc
2018-06-11 20:37:17,152 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
JLine support is enabled
2018-06-11 20:37:17,351 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@878] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2018-06-11 20:37:17,426 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x100020038470000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
4.3 查看znode节点
查看保障文档
[zk: localhost:2181(CONNECTED) 1] 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
[zk: localhost:2181(CONNECTED) 2]
读取 ls / get / ls2 stat path [ watch ]
watch 是注册一个事件,当其他客户端对当前节点进行更改时,这个事件会且只会生效一次进行通知提示
4.1 创建znode节点
创建 create [ -s ] [ -e ] path data acl
[ -s ] 创建顺序节点的 ,指定生效
[ -e ] 创建临时节点,需要指定生效,会话失效后,节点消失
path 创建节点的名称
data 该节点存取的数据
acl 权限控制,缺省下不做任何权限控制
4.3 删除znode节点
删除 delete path [ version ] / rmr path
delete和rmr命令区别在于rmr会递归删除命令,当znode节点下有子节点时,rmr会首先去删除子节点,再删除znode,而delete必须要先手动删除znode节点下的子节点。