Zookeeper的安装部署,zookeeper参数配置说明,集群搭建,查看集群状态

    xiaoxiao2023-08-09  127

    1、Zookeeper的安装部署

    7.1 Zookeeper工作机制

    7.1.1、Zookeeper集群角色

    Zookeeper集群的角色:  Leader 和  follower (Observer)

    zk集群最好配成奇数个节点

    只要集群中有半数以上节点存活,集群就能提供服务

     

    7.2 Zookeeper部署

    7.2.1 机器准备

    1/ 安装到3台虚拟机上,准备的三台服务器地址是:

    C:\Windows\System32\drivers\etc\hosts中配置的内容如下:

     

    192.168.106.80      hadoop

    192.168.106.81      hadoop2

    192.168.106.82      hadoop3

    如果想同时能够操作三台服务器,可以进行如下配置:

    2/ 安装好JDK

    3/ 上传安装包。上传用工具。

    4/ 解压

    su - hadoop(切换到hadoop用户),如果直接是root用户则不需要这样切换

    tar -zxvf zookeeper-3.4.5.tar.gz(解压)

    5/ 重命名

    mv zookeeper-3.4.5 zookeeper(重命名文件夹zookeeper-3.4.5为zookeeper)

    可以删除里面一些源码工程相关的文件,剩下的是这些:

    7.2.2修改环境变量

    (注意:3台zookeeper都需要修改)

    1/ su – root(切换用户到root)

    2/ vi /etc/profile(修改文件)

    3/ 添加内容:

    export ZOOKEEPER_HOME=/home/hadoop/zookeeper

    export PATH=$PATH:$ZOOKEEPER_HOME/bin

    4/ 加载环境配置:

    source /etc/profile

    5/ 修改完成后切换回hadoop用户:

    su - hadoop

     

    7.2.3 修改Zookeeper配置文件

    1、用root用户操作

    cd zookeeper/conf

    cp zoo_sample.cfg zoo.cfg

     

    2、vi 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/tuzq/software/zookeeper/zkdata

    dataLogDir=/home/tuzq/software/zookeeper/log

    # the port at which the clients will connect

    clientPort=2181

    #

    # 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

    server.1= hadoop:2888:3888

    server.2= hadoop2:2888:3888

    server.3= hadoop3:2888:3888

     

    参数说明:

    tickTimezookeeper中使用的基本时间单位, 毫秒值.

    initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的serverfollower initLimit参数配置初始化连接时, followerleader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5tickTime, 5*2000=10000ms=10s.

    syncLimit: 该参数配置leaderfollower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2tickTime, 4000ms.

    dataDir: 数据存放目录. 可以是任意目录.但是我喜欢这么干

    dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置

    clientPort: 监听client连接的端口号.

    server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个serverB, C参数必须不同.

    4、创建文件夹:

    cd /home/tuzq/software/zookeeper/

    mkdir zkdata

    mkdir -m 755 log

     

    5、在data文件夹下新建myid文件,myid的文件内容为:

    cd zkdata

    echo 1 > myid

    7.2.4 分发安装包到其他机器

    scp -r /root/apps root@hadoop2:/root/

    scp -r /root/apps root@hadoop3:/root/

     

    7.2.5 修改其他机器的配置文件

    1、修改myid文件

    到hadoop2上:修改myid为:2

    到hadoop3上:修改myid为:3

     

    7.2.6 启动(每台机器)

    注:

    1、事先将三台服务器的防火墙都关掉

    2、全网统一hosts映射

    先配好一台上的hosts

    在hadoop机器中的hosts文件中做如下修改:

    [root@hadoop zkdata]# cat /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.106.80      hadoop

    192.168.106.81      hadoop2

    192.168.106.82      hadoop3

     

    然后:

    scp /etc/hosts  hadoop2:/etc

    scp /etc/hosts  hadoop3:/etc

     

     

    查看hadoop2中的hosts文件中的内容

    [root@hadoop2 zkdata]# cat /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.106.80      hadoop

    192.168.106.81      hadoop2

    192.168.106.82      hadoop3

     

    3、然后一台一台地启动

    bin/zkServer.sh start

    创建日志文件目录,如果没有这个日志文件将会报错

    mkdir -p /home/tuzq/software/zookeeper/log

     

    或者编写一个脚本来批量启动所有机器:

    for host in " hadoop hadoop2 hadoop3"

    do

    ssh $host "source /etc/profile;/home/tuzq/software/zookeeper/bin/zkServer.shstart"

     

    vim startupZK.sh

    chmod +x startupZK.sh

    #!/bin/bash

    for host in "hadoop hadoop2 hadoop3"

    do

        ssh $host "source /etc/profile;/home/tuzq/software/zookeeper/bin/zkServer.sh   start"

    done

     

    7.2.7 查看集群状态

    1、jps(查看进程)

    2、zkServer.sh status(查看集群状态,主从信息)

     

    分别查看hadoop hadoop2 hadoop3这三台服务器上的zookeeper的状态

    相关资源:基于zookeeper集群监测服务器宕机情况,并发邮件通知
    最新回复(0)