CentOS6.9搭建ZooKeeper环境

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。在分布式泛滥的今天,ZooKeeper发挥着非常大的作用。

ZooKeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。

我们本次所采用的环境是CentOS6.9,JDK1.8,ZooKeeper使用的是最新稳定版本3.4.9

安装步骤

由于ZooKeeper的特性,我们需要准备至少3台节点来进行部署ZooKeeper。注意ZooKeeper集群的数量必须是奇数。具体原因查看ZooKeeper的原理。

  • 最小化安装CentOS6.9
  • 配置各节点网络环境,具体的根据服务器规划来设置
  • 下载并安装jdk,操作比较简单,参考Linux下安装部署Java环境
  • 下载ZooKeeper,下载地址
  • 解压ZooKeeper, 操作比较简单,tar -zxvf ***.tar.gz 解压到 /usr/local/zookeeper
  • 配置ZooKeeper, 重点,下面具体说
  • 启动服务
  • 停止服务

服务器规划

IP地址 部署服务
192.168.228.101 zookeeper-01
192.168.228.102 zookeeper-02
192.168.228.103 zookeeper-03

配置ZooKeeper

解压之后目录结构下有conf文件夹,在conf文件夹下有zoo_example.cfg

  1. 拷贝zoo_example.cfg。ZooKeeper默认读取的是conf下的zoo.cfg配置文件,因此我们先拷贝一份事例文件
cp zoo_example.cfg zoo.cfg
  1. 修改配置文件,这里主要关联其他节点

image

这里我们关注两个划红线的地方,第一个是数据文件的路径,默认在tmp下,这里修改到了/var/lib/zookeeper下。主要要在指定的目录下创建这个文件夹。

mkdir /var/lib/zookeeper

第二个地方是配置服务器,server.后面跟的是服务器的id,一个整数值,从1-255之间。后面是机器的ip地址和端口号

这个地方需要注意,在数据目录下,要创建一个myid的文件,文件内容就是server.id。比如例子中的192.168.228.101在/var/lib/zookeeper/myid 的内容就是1

touch myid
echo 1 > myid

3.拷贝解压并配置好的ZooKeeper文件夹复制到另外两个节点中。

scp -r zookeeper... root@192.168.228.102:/usr/local/

如果scp没有安装使用yum安装scp

yum install openssh-clients -y

4.启动ZooKeeper集群

./usr/local/zookeeper/bin/zkServer.sh start

5.查看启动状态

telnet localhost 2181
stat
  1. 停止ZooKeeper集群
./usr/local/zookeeper/bin/zkServer.sh stop

遇到的问题

查看系统日志

如果启动不成功,第一个要找的就是系统日志。ZooKeeper的系统日志是使用log4j记录的,默认的位置是在当前位置,也就是在/usr/local/zookeeper/bin下的zookeeper.out的文件中。通过tail -f zookeeper.out可以查看。

防火墙

启动不成功的很大原因有可能是被防火墙拦截了,因此可以通过service iptables stop关闭防火墙

myid文件

在拷贝的过程中,不要忘记了创建dataDir和创建myid文件,并且每个节点的myid文件的内容是不同的。

猜你喜欢

转载自blog.csdn.net/king_kgh/article/details/78425535