zookeeper集群的搭建

需要使用SecureCRT上传文件到服务器上,可以通过rz命令,来选择文件。

//安装
[root@Linux2 ~]# yum install lrzsz -y
//使用
[root@Linux2 ~]# rz
//但是上传大一些的文件或者含有控制字符的时候SecureCRT提示zmodem transfer canceled by remote side
//解决:使用 rz -e 命令可以解决这个问题
[root@Linux2 ~]# rz -e

zookeeper-3.4.5.tar.gz传入后,会显示在/root/下

//创建apps文件夹,便于安装程序
[root@Linux2 ~]# mkdir apps
//解压安装zookeeper到apps文件夹下
[root@Linux2 ~]# tar -zxvf zookeeper-3.4.5.tar.gz -C apps/

删除zookeeper下无用文件,便于scp传输与运行

[root@Linux2 apps]# cd zookeeper-3.4.5/
[root@Linux2 zookeeper-3.4.5]# cd
[root@Linux2 ~]# cd apps/zookeeper-3.4.5/
[root@Linux2 zookeeper-3.4.5]# ll
total 1512
drwxr-xr-x.  2 501 games    4096 Aug  7 08:55 bin
-rw-r--r--.  1 501 games   75988 Sep 30  2012 build.xml
-rw-r--r--.  1 501 games   70223 Sep 30  2012 CHANGES.txt
drwxr-xr-x.  2 501 games    4096 Aug  7 08:55 conf
drwxr-xr-x. 10 501 games    4096 Aug  7 08:55 contrib
drwxr-xr-x.  2 501 games    4096 Aug  7 08:55 dist-maven
drwxr-xr-x.  6 501 games    4096 Aug  7 08:55 docs
-rw-r--r--.  1 501 games    1953 Sep 30  2012 ivysettings.xml
-rw-r--r--.  1 501 games    3120 Sep 30  2012 ivy.xml
drwxr-xr-x.  4 501 games    4096 Aug  7 08:55 lib
-rw-r--r--.  1 501 games   11358 Sep 30  2012 LICENSE.txt
-rw-r--r--.  1 501 games     170 Sep 30  2012 NOTICE.txt
-rw-r--r--.  1 501 games    1770 Sep 30  2012 README_packaging.txt
-rw-r--r--.  1 501 games    1585 Sep 30  2012 README.txt
drwxr-xr-x.  5 501 games    4096 Aug  7 08:55 recipes
drwxr-xr-x.  8 501 games    4096 Aug  7 08:55 src
-rw-r--r--.  1 501 games 1315806 Nov  5  2012 zookeeper-3.4.5.jar
-rw-r--r--.  1 501 games     833 Nov  5  2012 zookeeper-3.4.5.jar.asc
-rw-r--r--.  1 501 games      33 Nov  5  2012 zookeeper-3.4.5.jar.md5
-rw-r--r--.  1 501 games      41 Nov  5  2012 zookeeper-3.4.5.jar.sha1
[root@Linux2 zookeeper-3.4.5]# rm -rf src/ *.xml *.txt docs/ dist-maven/
[root@Linux2 zookeeper-3.4.5]# ll
总用量 1320
drwxr-xr-x.  2 501 games    4096 7月  24 17:20 bin
drwxr-xr-x.  2 501 games    4096 7月  24 17:20 conf
drwxr-xr-x. 10 501 games    4096 7月  24 17:20 contrib
drwxr-xr-x.  4 501 games    4096 7月  24 17:20 lib
drwxr-xr-x.  5 501 games    4096 7月  24 17:20 recipes
-rw-r--r--.  1 501 games 1315806 11月  5 2012 zookeeper-3.4.5.jar
-rw-r--r--.  1 501 games     833 11月  5 2012 zookeeper-3.4.5.jar.asc
-rw-r--r--.  1 501 games      33 11月  5 2012 zookeeper-3.4.5.jar.md5
-rw-r--r--.  1 501 games      41 11月  5 2012 zookeeper-3.4.5.jar.sha1

配置文件

[root@Linux2 zookeeper-3.4.5]# cd conf/
[root@Linux2 conf]# ll
总用量 12
-rw-r--r--. 1 501 games  535 9月  30 2012 configuration.xsl
-rw-r--r--. 1 501 games 2161 9月  30 2012 log4j.properties
-rw-r--r--. 1 501 games  808 9月  30 2012 zoo_sample.cfg
[root@Linux2 conf]# cp zoo_sample.cfg zoo.cfg
[root@Linux2 conf]# ll
总用量 16
-rw-r--r--. 1  501 games  535 9月  30 2012 configuration.xsl
-rw-r--r--. 1  501 games 2161 9月  30 2012 log4j.properties
-rw-r--r--. 1 root root   808 7月  24 18:11 zoo.cfg
-rw-r--r--. 1  501 games  808 9月  30 2012 zoo_sample.cfg


[root@Linux2 conf]# vi zoo.cfg
//数据目录的更改
dataDir=/root/zkdata
//新增服务器
//3个端口的作用 2181:对cline端提供服务 2888:集群内机器通讯使用(Leader监听此端口)3888:选举leader使用 
server.1=linux2:2888:3888 
server.2=linux3:2888:3888
server.3=linux4:2888:3888
//将myId记录到数据目录
[root@Linux2 conf]# mkdir /root/zkdata
[root@Linux2 conf]# cd /root/zkdata
[root@Linux2 zkdata]# echo 1 > myid

将配置好的zookeeper拷贝到别的服务器

//拷贝
[root@Linux2 ~]# scp -r apps/ linux3:/root
[root@Linux2 ~]# scp -r apps/ linux4:/root
//创建数据目录,创建myid
[root@Linux3 ~]# mkdir zkdata
[root@Linux3 ~]# cd zkdata/
[root@Linux3 zkdata]# echo 2 > myid
//创建数据目录,创建myid
[root@Linux4 ~]# mkdir zkdata
[root@Linux4 ~]# cd zkdata/
[root@Linux4 zkdata]# echo 3 > myid

启动zookeeper

//登录服务器后
//启动
[root@Linux2 ~]# /root/apps/zookeeper-3.4.5/bin/zkServer.sh start
//查看状态
[root@Linux2 ~]# /root/apps/zookeeper-3.4.5/bin/zkServer.sh status

自动化启动与停止zookeeper

//远程操作  
//shell和bash的关系:把shell比作是浏览器,而bash是谷歌浏览器。shell也叫做进程。
//运行ssh命令或者脚本后,会在新的shell运行,会取不到远程服务器的JAVA_HOME,利用source x.sh,可以把脚本x.sh中的变量放到当前shell中。
//用户登录后,会默认执行初始化脚本,执行.bashrc 即source /etc/profile。但现在由于ssh 登录与启动zookeeper命令写到了一起,所以现在需要手动提前执行,以获取JAVA_HOME。
//子进程中,是取不到父进程的变量的。而export,可以使变量可以被当前shell和子shell使用。
//启动 (Linux2下启动Linux3和Linux4的zookeeper)
[root@Linux2 ~]# ssh linux3 "source /etc/profile;/root/apps/zookeeper-3.4.5/bin/zkServer.sh start"
[root@Linux2 ~]# ssh linux4 "source /etc/profile;/root/apps/zookeeper-3.4.5/bin/zkServer.sh start"


//自动化配置
//准备两个脚本
//startzk.sh
#!/bin/bash

echo "start zkServer..."
for i in 2 3 4; 
do
    ssh linux$i "source /etc/profile;/root/apps/zookeeper-3.4.5/bin/zkServer.sh start"
done
//stopzk.sh
#!/bin/bash

echo "stop zkServer..."
for i in 2 3 4; 
do
    ssh linux$i "source /etc/profile;/root/apps/zookeeper-3.4.5/bin/zkServer.sh stop"
done

//创建一个bin文件夹
[root@Linux1 ~]# mkdir bin
//将两个脚本放入该文件夹(这样在任何目录,都可以startzk.sh进行执行)
//原因如下:(即使未创建bin,/root/bin也存在)
[root@Linux1 ~]# echo $PATH
/root/apps/jdk1.7.0_65/bin:/root/apps/jdk1.7.0_65/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
//添加执行权限
[root@Linux1 bin]# chmod +x startzk.sh stopzk.sh
//任意目录下执行
[root@Linux1 ~]# startzk.sh
[root@Linux1 ~]# stopzk.sh

创建节点

//节点为树型,节点即有数据,也可有子节点
//连接节点
[root@Linux2 ~]# /root/apps/zookeeper-3.4.5/bin/zkCli.sh
//创建持久节点
 create /test 999
//创建临时节点(临时节点不可以有子节点)
 create -e /test 999



//1、使用 ls 命令来查看当前 ZooKeeper 中所包含的内容:
[zk: 202.115.36.251:2181(CONNECTED) 1] ls /
//2、创建一个新的 znode ,使用 create /zk myData 。这个命令创建了一个新的 znode 节点“ zk ”以及与它关联的字符串:
[zk: 202.115.36.251:2181(CONNECTED) 2] create /zk "myData“
//3、我们运行 get 命令来确认 znode 是否包含我们所创建的字符串:
[zk: 202.115.36.251:2181(CONNECTED) 3] get /zk
#监听这个节点的变化,当另外一个客户端改变/zk时,它会打出下面的
#WATCHER::
#WatchedEvent state:SyncConnected type:NodeDataChanged path:/zk
[zk: localhost:2181(CONNECTED) 4] get /zk watch
//4、下面我们通过 set 命令来对 zk 所关联的字符串进行设置:
[zk: 202.115.36.251:2181(CONNECTED) 4] set /zk "zsl“
//5、下面我们将刚才创建的 znode 删除:
[zk: 202.115.36.251:2181(CONNECTED) 5] delete /zk
//6、删除节点:rmr
[zk: 202.115.36.251:2181(CONNECTED) 5] rmr /zk

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值