操作系统:centOS-6.8 2.6.32-642.el6.x86_64【虚拟机环境】 节点主机:10.0.55.3、10.0.55.5、10.0.55.6 目录结构: /opt/ 软件版本: jdk-7u67-linux-x64.rpm zookeeper-3.5.0-alpha.tar.gz
$ rpm -ivh jdk-7u67-linux-x64.rpm
$ cat /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
立即生效
$ source /etc/profile
$ wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.0-alpha/zookeeper-3.5.0-alpha.tar.gz
$ ln -s /opt/zookeeper-3.5.0-alpha /opt/zookeeper
$ mkdir /opt/zookeeper/data
$ echo "1" > /opt/zookeeper/data/myid
$ cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
--- 查看zoo.cfg内容 ---
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
server.1=10.0.55.3:2888:3888
server.2=10.0.55.5:2888:3888
server.3=10.0.55.6:2888:3888
--- 启动服务 --- $ /opt/zookeeper/bin/zkServer.sh start JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED --- 检查端口 --- netstat -lnpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22678 0.0.0.0:* LISTEN 1074/sshd tcp 0 0 :::2181 :::* LISTEN 121685/java tcp 0 0 :::55369 :::* LISTEN 121685/java tcp 0 0 ::ffff:10.0.55.3:3888 :::* LISTEN 121685/java tcp 0 0 :::8080 :::* LISTEN 121685/java tcp 0 0 :::22678 :::* LISTEN 1074/sshd
这里只介绍如何使用ansible的命令组件模块进行节点部署
为了节省篇幅,这里不介绍ansible的部署安装
$ ansible webservers -m copy -a 'src=zookeeper-3.5.0-alpha.tar.gz dest=/opt/ owner=root group=root mode=0644'
$ ansible webservers -m shell -a 'tar fxz /opt/zookeeper-3.5.0-alpha.tar.gz -C /opt/'
$ ansible webservers -m shell -a 'ln -s /opt/zookeeper-3.5.0-alpha /opt/zookeeper'
$ ansible webservers -m shell -a 'mkdir /opt/zookeeper/data'
$ ansible webservers -m shell -a 'echo "2" >/opt/zookeeper/data/myid'
$ ansible webservers -m copy -a 'src=/opt/zookeeper/conf/zoo.cfg dest=/opt/zookeeper/conf/zoo.cfg owner=root group=root mode=0644'
$ ansible webservers -m shell -a '/opt/zookeeper/bin/zkServer.sh stats'
$ ansible webservers -m shell -a 'netstat -lnpt'
$ ansible webservers -m shell -a '/opt/zookeeper/bin/zkServer.sh status'
10.0.55.5 | SUCCESS | rc=0 >>
Client port found: 2181
Mode: leaderJMX enabled by default ## 这里面的mode信息中,该主机被选举为 Leader
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
10.0.55.3 | SUCCESS | rc=0 >>
Client port found: 2181
Mode: followerJMX enabled by default ## 这里面的mode信息中,该主机被选举为 follower
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
10.0.55.6 | SUCCESS | rc=0 >>
Client port found: 2181
Mode: followerJMX enabled by default ## 这里面的mode信息中,该主机被选举为 follower
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
[root@lbl opt]# ./zookeeper/bin/zkCli.sh
znode
--- 创建一个/workers路径的znode ---
[zk: localhost:2181(CONNECTED) 0] create /workers helloworld
Created /workers
--- 使用get -s命令查看znode数据 ---
[zk: localhost:2181(CONNECTED) 1] get -s /workers
helloworld
cZxid = 0x500000006
ctime = Sat Apr 22 10:33:42 CST 2017
mZxid = 0x500000006
mtime = Sat Apr 22 10:33:42 CST 2017
pZxid = 0x500000006
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
--- 使用get -w选项,进行监听/factory的变化 ---
[zk: localhost:2181(CONNECTED) 11] get -w /workers
strong
--- 在 follower节点上启动客户端,并修改/workers ---
[root@lbl bin]# ./zkCli.sh
[zk: localhost:2181(CONNECTED) 2] set /workers weakness
---查看监听那台主机,返回的通知信息如下: ---
[zk: localhost:2181(CONNECTED) 12]
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/workers
--- 删除workers的znode ---
[zk: localhost:2181(CONNECTED) 7] delete /workers
[zk: localhost:2181(CONNECTED) 13] create -s /workers/worker- Created /workers/worker-0000000000 [zk: localhost:2181(CONNECTED) 14] create -s /workers/worker- Created /workers/worker-0000000001 [zk: localhost:2181(CONNECTED) 15] create -s /workers/worker- Created /workers/worker-0000000002 [zk: localhost:2181(CONNECTED) 16] create -s /workers/worker- Created /workers/worker-0000000003
[zk: localhost:2181(CONNECTED) 18] stat /workers
cZxid = 0x500000006
ctime = Sat Apr 22 10:33:42 CST 2017
mZxid = 0x500000008
mtime = Sat Apr 22 10:35:25 CST 2017
pZxid = 0x50000000c
cversion = 4
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 4
--- 从zookeeper-3.5.0版本以上,可以使用http接口提交4字命令的请求;
--- 在zookeeper服务中嵌入了Jetty server作为AdminServer管理服务器,其默认端口为8080;
--- 服务访问的URL格式是"/commands/[command name]",例如:访问stats命令
--- 服务器返回的结果是以JSON格式显示
http://10.0.55.3:8080/commands
http://10.0.55.3:8080/commands/stats
【分布式协调系统zookeeper】基础篇
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。