构建大数据平台(四)Zookeeper集群搭建

一、前提:

(1)Linux服务器一台、三台、五台、(2*n+1),Zookeeper集群的工作是超过半数才能对外提供服务,3台中超过两台超过半数,允许1台挂掉 ,是否可以用偶数,其实没必要;
如果有四台那么挂掉一台还剩下三台服务器,如果在挂掉一个就不行了,这里记住是超过半数。

(2)Zookeeper使用稳定版本:zookeeper-3.4.10.tar.gz;

(3)可在master上安装后,scp到其他slave机器上。

二、配置Zookeeper:

首先要注意在生产环境中目录结构要定义好,防止在项目过多的时候找不到所需的项目

  1. 目录统一放在/home下面 ,首先创建Zookeeper项目目录
#项目目录
mkdir zookeeper
cd /home/zookeeper

#存放快照日志
mkdir zkdata 

#存放事物日志
mkdir zkdatalog 
  1. 将 zookeeper-3.4.10.tar.gz 放在/home/zookeeper下,并解压缩,解压缩完成后可删除安装包:
#解压缩
tar -zxvf zookeeper-3.4.10.tar.gz

#完成后可删除
rm -f zookeeper-3.4.10.tar.gz
  1. 修改配置文件
    进入到解压好的目录里面的conf目录中,查看

zoo_sample.cfg 这个文件是官方给我们的zookeeper的样板文件,给他复制一份命名为zoo.cfg,zoo.cfg是官方指定的文件命名规则。

#进入conf目录
cd /home/zookeeper/zookeeper-3.4.10/conf/

#查看
[root@master conf]# ll
总用量 12
-rw-rw-r--. 1 1001 1001  535 3月  23 2017 configuration.xsl
-rw-rw-r--. 1 1001 1001 2161 3月  23 2017 log4j.properties
-rw-rw-r--. 1 1001 1001  922 3月  23 2017 zoo_sample.cfg

#复制zoo.cfg
cp zoo_sample.cfg zoo.cfg

3台服务器的配置文件如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/zookeeper/zkdata
dataLogDir=/home/zookeeper/zkdatalog
# the port at which the clients will connect
clientPort=2181
server.0=192.168.2.158:2888:3888
server.1=192.168.2.159:2888:3888
server.2=192.168.2.177:2888:3888
server.3=192.168.2.178:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
  1. 复制到slave机器上
scp -r /home/zookeeper/ root@slave1:/home/
scp -r /home/zookeeper/ root@slave2:/home/
scp -r /home/zookeeper/ root@slave3:/home/
  1. 分别创建myid文件
#server0
echo "0" > /home/zookeeper/zkdata/myid
#server1
echo "1" > /home/zookeeper/zkdata/myid
#server2
echo "2" > /home/zookeeper/zkdata/myid
#server3
echo "3" > /home/zookeeper/zkdata/myid

myid文件和server.myid 在快照目录下存放的标识本台服务器的文件,他是整个zk集群用来发现彼此的一个重要标识。

三、启动Zookeeper:

  1. 启动服务并查看(所有服务器都要启动)
#进入到Zookeeper的bin目录下
cd /home/zookeeper/zookeeper-3.4.10/bin/

#启动服务(所有都需要操作)
./zkServer.sh start
  1. 检查服务状态
#检查服务器状态
./zkServer.sh status

通过status就能看到状态:

./zkServer.sh status
JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg  #配置文件
Mode: follower  #他是否为领导

zk集群一般只有一个leader,多个follower,主一般是相应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来。

也可以用“jps”查看zk的进程,这个是zk的整个工程的main

#执行命令jps
20348 Jps
4233 QuorumPeerMain 
  1. 停止服务(所有服务器都要启动)
#停止服务(所有都需要操作)
./zkServer.sh stop

至此,Zookeeper搭建完成!

你可能感兴趣的:(构建大数据平台(四)Zookeeper集群搭建)