搭建要求:
(1) zk服务器集群规模不小于3个节点
(2) 要求各服务器之间系统时间要保持一致。
Ø 安装配置ZK
(1) 使用rz命令将Zk传输到Hadoop主机上的/export/software(自己规划好的目录下),我用的版本是zookeeper-3.4.10.tar.gz。
(2) 在hadoop的/export/servers目录下,解压缩zk....tar.gz
l 解压缩:
在/export/servers下,执行命令:tar -zxvf zookeeper-3.4.5.tar.gz,
l 重命名:
解压后将文件夹,重命名为zk,执行命令:mv zookeeper-3.4.5 zk,
l 设置环境变量:
执行命令: vi /etc/profile ,
添加 :export ZOOKEEPER_HOME=/export/servers/zk,
执行命令:source /etc/profile
Ø 修改ZK配置文件
(1) 重命名:将/export/servers/zk/conf目录下zoo_sample.cfg,重命名为zoo.cfg,执行命令:mv zoo_sample.cfg zoo.cfg。
(2) 查看:在/export/servers/zk/conf目录下,修改文件 vi zoo.cfg,文件内容如下图所示。在该文件中dataDir表示文件存放目录,它的默认设置为/tmp/zookeeper这是一个临时存放目录,每次重启后会丢失,在这我们自己设一个目录,/export/data/zk/data。
(3) 创建文件夹:mkdir /export/data/zk/data
(4) 创建myid:在data目录下,创建文件myid,值为0;vi myid ;内容为0。
(5) 编辑:执行vi zoo.cfg ,修改dataDir=/export/servers/zk/data。
新增:
server.0=hadoop0:2887:3887
server.1=hadoop1:2888:3888
server.2=hadoop2:2889:3889
说明:
ü tickTime:这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime 时间就会发送一个心跳;
ü dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里;
ü clientPort:这个端口就是客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
当这些配置项配置好后,就可以启动 Zookeeper了,启动后使用命令echo ruok | nc localhost 2181检查 Zookeeper 是否已经在服务。
Ø 配置其他节点
(1) 把haooop主机的zk目录和/etc/profile目录,复制到hadoop1和hadoop2中。执行命令:
scp -r /export/servers/zk/ hadoop2:/export/servers/
scp -r /export/servers/zk/ hadoop1:/export/servers/
scp /etc/profile hadoop2:/etc/
scp /etc/profile hadoop1:/etc/
ssh hadoop2
suorce /etc/profile
vi /export/data/zk/data/myid
exit
ssh hadoop1
suorce /etc/profile
vi /export/data/zk/data/myid
exit
(2) 把hadoop1中相应的myid的值改为1,把hadoop2中相应的myid的值改为2。
Ø 验证
说明:
l zkServer.sh start
l 正常启动后,jps查看,如果QuorumPeerMain启动,说明安装成功。
Ø Zookeeper客户端命令
l zkCli.sh -server localhost:2181,连接到zk服务,
l ls /
l ls2 /
l create /zk “hello”
l get /zk
l set /zk “zk”
l delete /zk
l quit
l help
l ...