Zookeep分布式集群搭建

Zookeeper不仅可以单机提供服务,同时也支持多机组成集群来提供服务,实际上Zookeeper还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个Zookeeper实例。
Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续。
集群容灾性:3台机器只要有2台可用就可以选出leader并且对外提供服务(2n+1台机器,可以容n台机器挂掉)。

这里我使用hadoop1,hadoop2,hadoop3为例,搭建步骤。

安装之前请先关闭防火墙!!!

1、官网下载zookeeper安装包
zookeeper-3.4.5.tar.gz

2、解压缩、重命名、设置环境变量
[root@hadoop1 install]# tar -zxvf zookeeper-3.4.5.tar.gz

[root@hadoop1 install]# mv zookeeper-3.4.5 zookeeper

vim /etc/profile

export ZOOKEEPER_HOME=/install/zookeeper
export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

source /etc/profile

3、在conf目录下,修改文件
mv zoo_sample.cfg zoo.cfg

4、编辑该文件,执行vi zoo.cfg
修改

#zk的的快照日志存放目录
dataDir=/install/zookeeper/data

#zk的事务日志的存放目录,如果不配置dataLogDir,
#那么zk的事务日志和快照日志都将存储在dataDir中,这样将严重影响zk的性能
dataLogDir=/install/zookeeper/dataLog

新增

server.0=hadoop1:2888:3888
server.1=hadoop2:2888:3888
server.2=hadoop3:2888:3888

2888表示zookeeper程序监听端口,3888表示zookeeper选举通信端口。

5、创建文件夹mkdir /install/zookeeper/data/install/zookeeper/dataLog

6、在data目录下,创建文件myid,值为0

[root@hadoop1 data]# vim myid
[root@hadoop1 data]# more myid

0

7、把zookeeper目录复制到hadoop2和hadoop3中
cd /install
scp -r zookeeper/ hadoop2:/install/
scp -r zookeeper/ hadoop3:/install/

复制环境变量
scp /etc/profile hadoop2:/etc/
scp /etc/profile hadoop3:/etc/

使环境变量生效
ssh hadoop2
source /etc/profile

ssh hadoop3
source /etc/profile

把hadoop2,hadoop3中相应的myid的值分别改为1,2

[root@hadoop2 data]# vi myid
[root@hadoop2 data]# more myid

1

hadoop3同上

8、启动,在三个节点上分别执行命令
[root@hadoop1 install]# zkServer.sh start

JMX enabled by default
Using config: /install/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

9、检验,在三个节点上分别执行命令
[root@hadoop1 install]# zkServer.sh status

JMX enabled by default
Using config: /install/zookeeper/bin/../conf/zoo.cfg
Mode: follower

能够看到是leader,还是follower。

停止
[root@hadoop1 install]# zkServer.sh stop

10、命令行操作

进入命名行:执行zkCli.sh

如果配置文件中更改了端口号2181,则需要指定端口zkCli.sh -server IP:port

zkCli.sh -server ubuntu:21818
ZooKeeper -server host:port cmd args
        connect host:port
        get path [watch]
        ls path [watch]
        set path data [version]
        rmr path
        delquota [-n|-b] path
        quit
        printwatches on|off
        create [-s] [-e] path data acl
        stat path [watch]
        close
        ls2 path [watch]
        history
        listquota path
        setAcl path acl
        getAcl path
        sync path
        redo cmdno
        addauth scheme auth
        delete path [version]
        setquota -n|-b val path

查看目录
[zk: localhost:2181(CONNECTED) 6] ls /zookeeper

创建目录
[zk: localhost:2181(CONNECTED) 10] create /liguodong hadoop
Created /liguodong

查看内容

[zk: localhost:2181(CONNECTED) 13] get /liguodong

hadoop
cZxid = 0x100000002
ctime = Tue Mar 31 01:37:29 PDT 2015
mZxid = 0x100000002
mtime = Tue Mar 31 01:37:29 PDT 2015
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

修改内容
[zk: localhost:2181(CONNECTED) 2] set /liguodong chinese

cZxid = 0x100000002
ctime = Tue Mar 31 01:37:29 PDT 2015
mZxid = 0x100000004
mtime = Tue Mar 31 01:41:55 PDT 2015
pZxid = 0x100000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃果冻不吐果冻皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值