linux上搭建zookeeper
1.zookeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 ZooKeeper包含一个简单的原语集,[1] 提供Java和C的接口。 ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
2.安装环境 系统: CentOS6.8 zookeeper版本:3.4.9 服务(3台): 192.168.1.11 , 192.168.1.12 ,192.168.1.13
(集群搭建要2n+1台服务) 需安装Java环境(JDK) 参考: http://blog.csdn.net/lkl_csdn/article/details/73160530
3.zookeeper集群搭建 在 root目录下 执行命令 mdkir software software/zookeeper
执行命令 cd software/zookeeper
1.下载zookeeper 3.1.1
执行命令 wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
在线下载(有网络) [plain] view plain copy wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
3.1.2 然后解压 tar -zxvf zookeeper-3.4.9.tar.gz [plain] view plain copy tar -zxvf zookeeper-3.4.9.tar.gz
4.安装zookeeper 4.1 进入解压后目录的conf目录下 执行命令 cd zookeeper-3.4.9/conf/
执行命令 ls 如图: 执行命令 cp zoo_sample.cfg zoo.cfg 如图:
4.2 编辑 zoo.cfg 文件 执行命令 vim zoo.cfg 文件内容如下:
[plain] view plain copy tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/software/zookeeper/zkdata (此路径指向myid位置)
dataLogDir=/root/software/zookeeper/logs(此路径指向日志位置)
clientPort=2181
server.1=192.168.1.11:2888:3888
server.2=192.168.1.12:2888:3888
server.3=192.168.1.13:2888:3888
保存并退出
4.3 在 zookeeper目录下执行命令 mkdir zkdata logs
4.4 最后把zookeeper文件复制到其他服务上去
执行命令: scp -r /root/software/zookeeper/ 192.168.1.12:/root/software/zookeeper scp -r /root/software/zookeeper/ 192.168.1.13:/root/software/zookeeper [plain] view plain copy scp -r /root/software/zookeeper/ 192.168.1.12:/root/software/zookeeper
scp -r /root/software/zookeeper/ 192.168.1.13:/root/software/zookeeper
4.5 在创建zookeeper节点表示文件是myid(在zookeeper目录下) 创建myid编号,一次在每台server上执行,
注意每台server的myid要对应正确的编号: 在 192.168.1.11这台server上
执行命令:echo "1">zkdata/myid 在 192.168.1.12这台server上
执行命令:echo "2">zkdata/myid 在 192.168.1.13这台server上
执行命令: echo "3">zkdata/myid
4.6 配置环境变量并使环境变量立即生效(环境变量也可不配) vim /etc/profile 添加
内容如下: export ZOOKEEPER_HOME=/root/software/zookeeper/zookeeper-3.4.9 export PATH=$ZOOKEEPER_HOME/bin:$PATH [plain] view plain copy
export ZOOKEEPER_HOME=/root/software/zookeeper/zookeeper-3.4.9
export PATH=$ZOOKEEPER_HOME/bin:$PATH
保存生效:source /etc/profile 在另外两台server上执行同样的操作。
5 启动zookeeper
5.1启动服务
进入解压文件的bin目录下: 执行命令:zkServer.sh start (启动)
执行命令:zkServer.sh statut (查看状态) 查看是否启动成功 启动成功:
启动失败: 如果启动失败可以去bin目录下查看日志文件 cat zookeeper.out 也可以去自己创建的logs目录下查看日志文件,
注意:要每天server的防火墙都要关闭,并且要都启动才有可能启动成功 之启动一台是无法启动成功的
关闭CentOS的防火墙命令是:service iptables stop 5.1 连接zookeeper服务
在bin目录在执行 : ./zkServer.sh -server 192.168.1.11:2181启动服务
6.zk客户端命令 1. 显示根目录下、
文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容 2. 显示根目录下、
文件: ls2 / 查看当前节点数据并能看到更新次数等数据
3. 创建文件,并设置初始内容: create /zk “test” 创建一个新的 znode节点“ zk ”以及与它关联的字符串
4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
5. 修改文件内容: set /zk “zkbak” 对 zk 所关联的字符串进行设置
6. 删除文件: delete /zk 将刚才创建的 znode 删除
7. 退出客户端: quit
8. 帮助命令: help