需要使用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