Zookeeper分布式集群部署方式

最近对分布式有了新的认识,在这里先记录一下心得。说起分布式,看到有人讲的一个例子特别的生动形象,是这样的:
有一家餐厅的厨房,原来只有一位厨师在做事,这个厨师要负责洗菜、切菜、备料、炒菜以及上菜的所有工作。后来,餐厅生意越来越好,老板发现一位厨师做所有的事忙不过来呀,于是又请了负责洗菜、切菜和备料工作的配菜师,以及专门上菜的服务员,让厨师专心炒菜,把菜做到极致。这时候厨师与配菜师、服务员之间的关系就是分布式的,即让不同的人做不同的事;再后来,生意越加火爆,餐厅也扩大店面经营,一位厨师和配菜师显然已经满足不了需求了,于是老板又请了一位厨师和一位配菜师和一位服务员,让他们相互协作,提高生产力。这时候呢,两位配菜师可以做同样的工作,两位厨师可以炒同样的菜,服务员也是。此时,两位厨师之间就是集群的关系,那么对应的两位配菜师以及两位服务员之间也是同样的道理。

也就是说,集群是让不同的人做相同的事,而分布式是让不同的人做不同的事。

回归正题,今天记录一下Zookeeper分布式集群的部署方式。
Zookeeper分布式集群部署指的是Zookeeper分布式模式安装,Zookeeper集群搭建通常是由2n+1台服务器组成,这是为了保证Leader选举(基于Paxos算法的实现)能够通过半数以上服务器选举支持,因此,Zookeeper集群的数量一般为奇数台。

  1. Zookeeper安装包的安装
    由于Zookeeper集群的运行需要Java环境支持,所以需要提前安装jdk。
  • 将下载好的Zookeeper安装包上传到Linux系统的/export/softword目录下。
  • 进入,Zookeeper安装包的目录
$ cd /export/softword/
  • 解压安装包zookeeper-3.4.10.tar.gz到/export/server/目录下,具体命令如下:
$ tar -zxvf zookeeper-3.4.10.tar.gz -C /export/servers/

Zookeeper的压缩包解压完成后,Zookeeper的安装就完成了。接下来对它做一些配置。

师傅乐哥曾告诉我,linux下做文件操作时,一定一定一定要记得要先备份。
首先,我们进入Zookeeper的解压目录下的conf目录,复制配置文件zoo_sample.cfg并重命名为zoo.cfg,具体命令如下:

$ cp zoo_sample.cfg zoo.cfg 

其次,修改配置文件zoo.cfg,分别设置dataDir目录,配置服务器编号与主机的映射关系,设置与主机连接的心跳端口和选举端口,具体配置内容如下:

# 设置dataDir目录
dataDir = /export/data/zookeeper/zkdata
# 配置zk集群的服务器以及对应的主机名、选举端口和通信端口(心跳端口号)
#其中,server.1的1代表服务器的编号,hadoop01表示该服务器的IP地址,2888表示Leader选举的端口号,3888表示服务器之间的通信端口号(心跳端口号)。
server.1 = hadoop01.2888.3888
server.2 = hadoop02.2888.3888
server.3 = hadoop03.2888.3888
  1. 创建myid文件

首先,根据配置文件zoo.cfg中设置的dataDir目录,创建zkdata文件夹,具体命令如下:

$ mkdir -p /export/data/zookeeper/zkdata

其次,在zkdata文件夹下创建myid文件,该文件里面的内容是服务器编号(hadoop01服务器对应的编号1,hadoop02服务器对应的编号2,hadoop03服务器对应的编号3),具体命令如下:

$ cd /export/data/zokeeper/zkdata
$ echo 1 > myid
  1. 配置环境变量

Linux系统目录/etc下的文件profile里面的内容是与Linux环境变量相关的,所以我们一般配置环境变量都是在profile文件里面。执行命令vi /etc/profile对profile文件进行修改,并添加Zookeeper环境变量。

export ZK_HOME=/export/servers/zookeeper-3.4.10
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
  1. 分发Zookeeper相关文件到其他服务器

首先,将Zookeeper安装目录分发至Hadoop02、hadoop03服务器上。具体命令如下:

$ scp -r /export/servers/zookeeper-3.4.10/ hadoop02:/export/servers/
$ scp -r /export/servers/zookeeper-3.4.10/ hadoop03:/export/servers/

其次,将myid文件分发至hadoop02、hadoop03服务器上,并且修改myid的文件内容,依次对应的服务器号进行设置,分别为2、3,具体命令如下:

$ scp -r /export/data/zookeeper/ hadoop02:/export/data/
$ scp -r /export/data/zookeeper/ hadoop03:/export/data/

最后,将profie文件也分发至hadoop02和hadoop03服务器上,具体命令如下:

$ scp /etc/profile hadoop02:/etc/profile
$ scp /etc/profile hadoop03:/etc/profile
  1. 环境变量生效
    分别在hadoop01、hadoop02、hadoop03服务器上刷新profile文件,使得环境变量生效,具体命令如下:
$ source /etc/profile
  1. Zookeeper服务器的启动和关闭

当Zookeeper服务器集群部署完毕之后,接下来进行Zookeeper服务的启动和关闭。若Zookeeper服务器启动和关闭成功,则证明Zookeeper集群部署成功,否则,Zookeeper集群部署失败。

  • 启动Zookeeper服务
    分别在hadoop01、hadoop02和hadoop03服务器上启动Zookeeper服务,具体命令如下:
# 启动Zookeeper服务
$ zkServer.sh start
# 查看该节点的Zookeeper角色
zkServer.sh status

若是部署成功,就可以分别看到三台Hadoop服务器的Mode为foller、leader和foller,说明hadoop02服务器是选举产生的leader角色,他们的主从关系也就建立了。

  • 关闭Zookeeper服务
    若想关闭Zookeeper服务器,就应该依次在hadoop01、hadoop02和hadoop03服务器上执行如下的命令:
$ zkSerer.sh stop

这样,我们整个Zookeeper分布式集群部署就已经完成了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值