【分布式协调zookeeper】部署篇
admin
2023-03-19 22:41:32
0

一、环境准备

操作系统: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

二、安装Java环境

$ 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

三、下载zookeeper包并创建zookeeper管理数据

$ 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

四、编辑zookeeper/conf/zoo.cfg配置文件,启动时需要

$ 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

五、启动zookeeper服务并查看

--- 启动服务 ---
$ /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的部署安装

1、远程安装zookeeper节点

$ 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'

2、将配置文件copy到远端节点

$ ansible webservers -m copy -a 'src=/opt/zookeeper/conf/zoo.cfg dest=/opt/zookeeper/conf/zoo.cfg owner=root group=root mode=0644'

3、批量启动zookeeper服务并查看

$ ansible webservers -m shell -a '/opt/zookeeper/bin/zkServer.sh stats'
$ ansible webservers -m shell -a 'netstat -lnpt'

4、批量坚持zookeeper状态

$ 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

zookeeper基础操作

启动一个CLI客户端
[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
创建序列znode
[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
通过stat命令,进行查看workers状态
[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状态
--- 从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】部署篇

【分布式协调zookeeper】部署篇



【分布式协调系统zookeeper】基础篇

相关内容

热门资讯

五一票房冠军是惊悚片,“下沉市... 【文/新潮观鱼】今年“五一”档,有一个有意思的现象:一部看起来没有“爆款相”,演员和导演都没有很大票...
“几轮博弈后,特朗普发现:中国... 【文/观察者网 王一】当地时间5月9日,英国《金融时报》发长文分析称,在美国与中国围绕贸易、科技、地...
拒不付款,还对监控嚣张“比耶” 近日,广东梅州丰顺县一名男子加油逃单后,同行人对监控嚣张“比耶”。今天(5月10日),南都N视频记者...
演员张静初,面临被起诉 近日,多位在演员张静初直播间购买过“优思益”产品的网友表示,目前仍未拿到退款,陷入退货无门的境地。5...
90分钟16条,特朗普的社媒账... 周六下午,特朗普将他的Truth Social账号变成了“AI垃圾工厂”,在短短90分钟内发布了16...
我,22岁,确诊为“妈” 又是一年母亲节。每年今天,大家都试图再次看见母亲,讨论她们的付出与局限,以“成为母亲”为界限,划分她...
重达11000克拉!缅甸发现“... 【环球网报道】美国哥伦比亚广播公司、英国天空新闻网等媒体援引缅甸官方媒体8日消息报道称,缅甸发现一块...
玻璃缝隙漏水怎么处理 1、检查窗户玻璃附近墙体的防水层,重新做防水层。2、查找原先的密封物,检查门窗与墙体的密封度,如果密...
热水器侧面的缝隙漏水可以修好吗 问题:热水器侧面的缝隙漏水可以修好吗回答:如果热水器侧面出现缝隙漏水的情况基本上都是可以修好的。首先...
洗面盆和台面缝隙漏水怎么办 洗菜盆漏水的修补方法1、如果是洗菜盆和台面衔接松动:如果是因为洗菜盆安装时没安装好,与台面缝隙过大,...