四、Zookeeper伪集群搭建
伪集群模式
Zookeeper不但可以在单机上运行单机模式 Zookeeper,而且可以在单机模拟集群模式 Zookeeper的运 行,也就是将不同实例运行在同一台机器,用端口进行区分,伪集群模式为我们体验 Zookeeper和做 些尝试性的实验提供了很大的便利。比如,我们在测试的时候,可以先使用少量数据在伪集群模式下进 行测试。当测试可行的时候,再将数据移植到集群模式进行真实的数据实验。这样不但保证了它的可行 性,同时大大提高了实验的效率。这种搭建方式,比较简便,成本比较低,适合测试和学习
clientPort端口: 如果在1台机器上部署多个 server,那么每台机器都要不同的 clientPort,比如 server1是2181 server2 是2182, server3是2183 data Dir和 dataLogDir: dataDir和 dataLog Dir也需要区分下,将数据文件和日志文件分开存放,同时每个seve的这两变量所 对应的路径都是不同的1 serverx和myid: serverx这个数字就是对应,data/myid中的数字,在3个 serverl的myd文件中分别写入了1,2,3,那 么每个 server中的200.cg都配 server.1 server2.see3就行了。因为在同一台机器上,后面连着的2 口,3个 server都不要一样,西则罐口冲突 口
下载Zookeeper (http://zookeeper.apache.org/releases.html)
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
解压到 /usr/local/zkcluter
tar -zxvf zookeeper-3.4.14.tar.gz -C /zkcluster
重命名
mv zookeeper-3.4.14 zookeeper1
创建文件夹 data \ logs
mkdir data
cd data
mkdir logs
修改配置文件名称
cd conf
mv zoo_sample.cfg zoo.cfg
复制拷贝3份
cp -r zookeeper1/ zookeeper2
cp -r zookeeper1/ zookeeper3
分别配置zoo.cfg clientPort 2181 2182 2183
clientPort=2181 dataDir=/usr/local/zkcluster/zookeeper-1/data dataLogDir=/usr/local/zkcluster/zookeeper-1/data/logs clientPort=2182 dataDir=/usr/local/zkcluster/zookeeper-2/data dataLogDir=/usr/local/zkcluster/zookeeper-2/data/logs clientPort=2183 dataDir=/usr/local/zkcluster/zookeeper-3/data dataLogDir=/usr/local/zkcluster/zookeeper-3/data/logs
配置集群
分别在 zookeeper1 zookeeper2 zookeeper3,data目录下创建文件 myid,内容分别是 1、2、3、
touch myid
配置集群服务器ip列表zoo.cfg
server.1=127.0.0.1:2881:3881 server.2=127.0.0.1:2882:3882 server.3=127.0.0.1:2883:3883 #server.服务器id=当前服务器IP:服务器之间的通信端口:服务器之间的投票选举端口
依次启动
基本操作
进入zookeeper /bin目录 通过zkClient 的客户端
./zkcli.sh 连接本地zookeeper服务器
./zkCli.sh -server ip:port 连接指定服务器
help
创建节点
使用create 命令 可以创建zookeeper节点
ls / //查看节点信息 create [-s][-e] path data acl create -s/xxzk 123 //创建顺序节点 create -e/xxzk 123 //创建零时节点 退出客户端 零时节点消失
-
创建顺序节点
create -s/xxzk 123 //创建顺序节点
-
创建零时节点
create -e/xxzk 123 //创建零时节点
-
创建永久节点
create /testzk 123
读取节点
ls 和 get 命令
更新节点
set 命令
set path data [version]
删除节点
使用 delete 命令
delete path [version]
其中version代表数据版本