之前简单介绍了Zookeeper,接下来搭建一个Zookeeper的集群环境
本集群使用三个节点,网络环境及jdk安装不再赘述,直接从环境搭建开始
环境搭建
接下来操作在hadoop用户下进行
1. 解压 tar -xzvf zookeeper-3.4.10.tar.gz
2. 由于服务器上不需要其他东西,因此删除掉.txt及.xml文件和doc目录
3. 进入安装目录下的conf目录,复制zoo_sample.cfg并重命名为zoo.cfg cp zoo_sample.cfg zoo.cfg
4. 修改zoo.cfg:
修改快照文件目录:
dataDir=/usr/local/zookeeper/data
添加日志文件目录:
dataLogDir=/usr/local/zookeeper/log
server.1=node01:2888:3888 (主机名, 心跳端口、数据端口)
server.2=node02:2888:3888
server.3=node03:2888:3888
5. 在安装目录下创建data和log目录
6. 在data目录下创建myid文件 touch myid,myid的内容为从1开始的数字,对应各节点的cfg配置
7. 切换到root用户,创建软链接 ln -s /home/hadoop/zookeeper-3.4.10 /usr/local/zookeeper
单节点配置完成,把配好的安装目录复制到其他节点 scp -r /home/hadoop/zookeeper-3.4.10 hadoop@node02:/home/hadoop
分别在对应的节点创建软链接及修改myid,修改环境变量(root用户)
vim /etc/profile
增加export ZOOKEEPER_HOME=/usr/local/zookeeper,在path中追加ZOOKEEPER_HOME指向Bin,并编译
配置完成,分别启动各节点的zookeeper
/usr/local/zookeeper/bin/zkServer.sh start
检查状态:/usr/local/zookeeper/bin/zkServer.sh status
其中有follower,有leader为启动成功
简单练习
zookeeper登录可以使用bin目录下的zkCli.sh
运行./zkCli.sh
help命令可查看zookeeper所提供的一些命令
创建节点: create /zktest 123即可在根目录下创建zktest并在节点中存123数据
查看节点数据: get /zktest
显示的包括数据内容、版本号、创建时间等详细信息
创建监听事件(监听数据变化) get /zktest watch
在另外节点连接zookeeper,修改节点数据:set /zktest 3456
在本节点会看到监听事件
可看到在最后出现监听变化,但注意,监听只一次有效,再次修改,这个监听就无效了
创建子节点,可以在之前测试的zktest节点下继续创建子节点,create /zktest/s1 111
顺序子节点的创建为create -s /zktest/ss1 111
可以看到在后边会自动追加若干个0并接1,继续执行上述create操作,则继续2,3...
创建临时节点create -e /zktest/es1 111,临时节点在创建节点的客户端断开连接时会自动删除,可以通过监听节点实现一些功能(ls监听)
删除节点:delete 节点路径,但这样不能删除有子节点的节点,要删除待子节点的节点,可用rmr命令
zookeeper还可对版本进行管理,set命令后可接版本号,如果版本号和当前版本号不一致,则数据不会更新,一致的话会更新数据并对版本号加一
zookeeper常用四字命令
四字命令在telnet 连接使用
conf查看zookeeper运行时的配置信息
cons 输出当前服务器上所有客户端的连接信息
在node01 l连接node02 zkCli.sh -server node02:2181,使用cons查看:
stat 输出Zookeeper运行时状态信息
srvr 与stat命令功能一致,但不会输出客户端的连接情况,仅输出服务器自身的信息
wchs 输出当前服务器管理的Watcher的概要信息
wchc 输出当前服务器管理的Watcher的详细信息
mntr 输出比stat命令更详尽的统计信息
envi 输出Zookeeper所在服务器运行时的环境信息
可以基于zookeeper的上述操作根据不同需求搭建适宜的系统,这些待以后研究,目前的zookeeper主要用于hadoop2.0的搭建及后续环境搭建