Zookeeper 集群安装部署

17 篇文章 0 订阅
2 篇文章 0 订阅

集群规划

在 3 台服务器上都安装 ZK,组成集群

$ tar xzvf apache-zookeeper-3.5.7-bin.tar.gz -C /home/hadoop/local/

$ cd /home/hadoop/local

$ ln -s apache-zookeeper-3.5.7-bin zookeeper

添加环境变量

修改 my_env.sh

$ sudo vim /etc/profile.d/my_env.sh

HADOOP_HOME=/home/local/hadoop                                                                                                                               
ZOOKEEPER_HOME=/home/hadoop/local/zookeeper                                                                                                                  
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin                                                                                            
export HADOOP_HOME ZOOKEEPER_HOME PATH 

$ source /etc/profile

修改配置

$ cd /home/hadoop/local/zookeeper/conf

$ mv zoo_sample.cfg zoo.cfg

创建保存日志路径

$ mkdir /home/hadoop/local/zookeeper/zkData

修改配置文件:

$ vim zoo.cfg

修改保存数据的目录:

dataDir=/home/hadoop/local/zookeeper/zkData

最后添加:

server.1=ns1:2888:3888
server.2=ns2:2888:3888
server.3=ns3:2888:3888
  • 这个 server 后面的数字要和后面的 myid 文件中记录的数字一致,表示这个是第几号服务器;
  • ns1:这个服务器的地址
  • 2888:是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
  • 3888:是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口;

新建保存 id 的文件

Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server;

$ cd /home/hadoop/local/zookeeper/zkData

$ touch myid

$ vim myid

1

此 id 值每个服务器不同,因此 ns1 为 1,ns2 为 2,ns3 为 3

在 ns2、ns3 上执行上面同样的命令,只不过 myid 文件中的值为 2 和 3

启动命令

每台 ZK 服务器分别启动

$ zkServer.sh start

查看 ZK 服务器状态:

$ zkServer.sh status

输出信息中的 Mode: leader / flower,可以看出是否是主节点;

关闭 ZK 服务器:

$ zkServer.sh stop

客户端启动命令

$ zkCli.sh

客户端命令行操作命令

命令基本语法

功能描述

help

显示所有操作命令

ls path

使用 ls 命令来查看当前znode的子节点

-w  监听子节点变化

-s   附加次级信息

create

普通创建

-s  含有序列

-e  临时(重启或者超时消失)

get path

获得节点的值

-w  监听节点内容变化

-s   附加次级信息

set

设置节点的具体值

stat

查看节点状态

delete

删除节点

deleteall

递归删除节点

ZK 集群启动停止脚本

$ vim /home/hadoop/bin/zk.sh

#!/bin/bash
if [ $# -lt 1 ]
then
    echo "USAGE: zk.sh {start|stop|status}"
    exit;
fi
case $1 in
"start"){
   for i in ns1 ns2 ns3
   do
       echo ---------- zookeeper $i 启动 ------------
       ssh $i "/home/hadoop/local/zookeeper/bin/zkServer.sh start"
   done
};;
"stop"){
   for i in ns1 ns2 ns3
   do
       echo ---------- zookeeper $i 停止 ------------    
       ssh $i "/home/hadoop/local/zookeeper/bin/zkServer.sh stop"
   done
};;
"status"){
   for i in ns1 ns2 ns3
   do
       echo ---------- zookeeper $i 状态 ------------    
       ssh $i "/home/hadoop/local/zookeeper/bin/zkServer.sh status"
   done
};;
esac

$ chmod u+x /home/hadoop/bin/zk.sh

以后就可以在 ns1 上操作整个 ZK 集群:

$ zk.sh start|status|stop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值