step1:
下载zookeeper的安装包之后, 解压到合适目录. tar -zxvf zookeeper-3.4.6.tar.gz
[root@sinocrt zookeeper-3.4.6]# ll
总用量 20
drwxr-xr-x. 10 1000 1000 4096 2月 20 2014 zookeeper1
drwxr-xr-x. 10 root root 4096 10月 22 09:57 zookeeper2
drwxr-xr-x. 10 root root 4096 10月 22 09:57 zookeeper3
drwxr-xr-x. 10 root root 4096 10月 22 09:57 zookeeper4
drwxr-xr-x. 10 root root 4096 10月 22 10:09 zookeeper5
step2:
修改配置zoo.cfg
将zookeeper-3.4.3/conf目录下的zoo_sample.cfg文件拷贝一份,命名为为zoo.cfg
[root@sinocrt conf]$ cp zoo_sample.cfg zoo.cfg
删除dataDir,clientPort
编辑该文件,在最后面添加如下参数
clientPort=2181
server.1=192.168.11.130:8881:7771
server.2=192.168.11.130:8882:7772
server.3=192.168.11.130:8883:7773
server.4=192.168.11.130:8884:7774
server.5=192.168.11.130:8885:7775
dataDir=/home/hadoop/zookeeperdir/zookeeper-data 1
dataLogDir=/home/hadoop/zookeeperdir/logs1
参数说明
-clientPort:客户端连接端口
- tickTime: zookeeper中使用的基本时间单位, 毫秒值.
- dataDir: 数据目录. 可以是任意目录.
- dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
- clientPort: 监听client连接的端口号.
- initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
- syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
- server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.
step3:
创建data、log目录
mkdir -p /home/hadoop/zookeeperdir/zookeeper-data1
mkdir -p /home/hadoop/zookeeperdir/logs1
设置myid
在dataDir目录下创建myid文件,该文件的内容根据server定义的不同而不同,如server.1 该文件的内容是1,server.2 该文件内容是 2,以此类推.
step4:
启动zookeeper
在每个节点上执行(hadoop用户下执行) zookeeper/bin目录
[hadoop1@node1 bin]$ ./zkServer.sh start
JMX enabled by default
Using config: /usr1/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
验证
[hadoop1@node4 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /usr1/zookeeper/bin/../conf/zoo.cfg
Mode: leader
注:通过shell脚本在每个机器上启动zookeeper的时候,可能会显示错误信息“Cannot open channel to X at electionaddress”。这是由于zoo.cfg文件中指定的其他zookeeper服务找不到所导致,是由于部分zookeeper服务器还没有启动连接不上报的错,在所有机器zookeeper服务启动之后该错误提示将会消失。
常用命令:
1. 启动ZK服务: sh bin/zkServer.sh start
2. 查看ZK服务状态: sh bin/zkServer.sh status
3. 停止ZK服务: sh bin/zkServer.sh stop
4. 重启ZK服务: sh bin/zkServer.sh restart
5.连接zookeeper服务:zkCli.sh –server 10.77.20.23:2181
6.创建节点:create /zk myData
7.获取节点信息:get /zk
8.更改节点信息:set /zk myData2
9.查看节点信息:ls /
10.删除节点:delete /zk