otter安装之zookeeper安装步骤-集群模式(单机伪集群)

5 篇文章 1 订阅

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper包含一个简单的原语集, 提供Java和C的接口。

ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

 

zookeeper功能非常强大,可以实现诸如分布式应用配置管理、统一命名服务、状态同步服务、集群管理等功能,我们这里拿比较简单的分布式应用配置管理为例来说明。

假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在 zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 zookeeper 的通知,然后从 zookeeper 获取新的配置信息应用到系统中。

本文主要介绍zookeeper单机伪集群的安装过程,具体步骤如下:

1.安装JDK(要大于1.6的版本),具体过程可参考上一批博客,博客链接:https://blog.csdn.net/u014642915/article/details/96311051

2.安装基础环境:yum install telnet  openssl zlib zlib-devel gnutls gnutls-devel gcc -y

3.从Apache官方网站下载一个ZooKeeper 的最近稳定版本,本文介绍的是3.4.13版本的安装过程

4.创建三个文件夹,三个文件夹用来搭建三个不同的zookeeper服务

mkdir /opt/server1 -p
mkdir /opt/server2 -p
mkdir /opt/server3 -p

5.解压文件到对应的文件夹

tar -xzf zookeeper-3.4.13.tar.gz -C /opt/server1 

tar -xzf zookeeper-3.4.13.tar.gz -C /opt/server2

tar -xzf zookeeper-3.4.13.tar.gz -C /opt/server3

6.创建数据目录data和日志目录logs

mkdir /opt/server1/zookeeper-3.4.13/data

mkdir /opt/server1/zookeeper-3.4.13/logs

mkdir /opt/server2/zookeeper-3.4.13/data

mkdir /opt/server2/zookeeper-3.4.13/logs

mkdir /opt/server3/zookeeper-3.4.13/data

mkdir /opt/server3/zookeeper-3.4.13/logs

7.规划节点,将节点信息写入myid文件

echo '1'  > /opt/server1/zookeeper-3.4.13/data/myid

echo '2'  > /opt/server2/zookeeper-3.4.13/data/myid

echo '3'  > /opt/server3/zookeeper-3.4.13/data/myid

8.编辑zoo.cfg文件

如果/opt/server1/zookeeper-3.4.13/conf 目录下没有zoo.cfg文件,则新增一个

注意dataDir,dataLogDir,clientPort,server.1,server.2,server.3 的不同

server1 的zoo.cfg文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/server1/zookeeper-3.4.13/data
dataLogDir=/opt/server1/zookeeper-3.4.13/logs
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

server2的zoo.cfg文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/server2/zookeeper-3.4.13/data
dataLogDir=/opt/server2/zookeeper-3.4.13/logs
clientPort=2182
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

server3的zoo.cfg文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/server3/zookeeper-3.4.13/data
dataLogDir=/opt/server3/zookeeper-3.4.13/logs
clientPort=2183
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

9.启动zookeeper服务

sh /opt/server1/zookeeper-3.4.13/bin/zkServer.sh start

sh /opt/server2/zookeeper-3.4.13/bin/zkServer.sh start

sh /opt/server3/zookeeper-3.4.13/bin/zkServer.sh start

10.启动之后稍等一分钟左右查看启动结果

# sh /opt/server1/zookeeper-3.4.13/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/server1/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower

# sh /opt/server2/zookeeper-3.4.13/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/server2/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader

# sh /opt/server3/zookeeper-3.4.13/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/server3/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower

查看结果是三台服务都已启动成功,并且自动划分了领导者(leader)和从属者(follower)

至此,zookeeper单机伪集群的安装过程已安装完毕!

 

下面是zoo.cfg配置文件的部分解释

tickTime :基本事件单元,以毫秒为单位。它用来指示心跳,最小的 session 过期时间为两倍的 tickTime. 。

dataDir :存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。

dataLogDir:存放日志文件(可以不用配置,默认conf目录下的zookeeper.out 文件为日志文件)

clientPort :监听客户端连接的端口

“ server.id=host:port:port. ”指示了不同的 ZooKeeper 服务器的自身标识,作为集群的一部分的机器应该知道 ensemble 中的其它机器。用户可以从“ server.id=host:port:port. ”中读取相关的信息。 在服务器的 data ( dataDir 参数所指定的目录)目录下创建一个文件名为 myid 的文件,这个文件中仅含有一行的内容,指定的是自身的 id 值。比如,服务器“ 1 ”应该在 myid 文件中写入“ 1 ”。这个 id 值必须是 ensemble 中唯一的,且大小在 1 到 255 之间。这一行配置中,第一个端口( port )是从( follower )机器连接到主( leader )机器的端口,第二个端口是用来进行 leader 选举的端口。在这个例子中,每台机器使用三个端口,分别是: clientPort , 2181 ; port , 2888 ; port , 3888 。

 因为我们这个是一台服务器所以避免端口冲突,端口都配置的不一样如果是三台不同的服务器,则三台服务器的clientPort和“server.id=host:port:port” 都一样的:

clientPort=2181
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888

zk配置文件的详细解释请参考另一篇博文

博文链接:https://blog.csdn.net/u014642915/article/details/105436351

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值