Zookeeper三节点集群搭建

作者: HideOnStream | 来源:发表于2019-11-07 22:15 被阅读0次

    Mac下利用vmware fushion安装centos服务器,然后搭建Zookeeper集群环境。

    安装中用到的软件包
    配置虚拟机并且安装JDK

    为了安装简便,先安装一台linux虚拟机,并在其上安装zookeeper,然后克隆这个镜像2份,修改相关配置即可。

    1. 安装虚拟机
      我们这里使用的配置是4G内存,50G硬盘,处理器2核。注意:网络要选择与我的mac共享

    2. 修改ip地址,使用固定ip
      注意:在修改静态ip之前,先查看vmware fushion使用的本机默认网关地址以及虚拟机允许选择的静态ip地址范围

    通过Mac终端查看vmware fushion使用的默认网关地址:

    cat /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf
    

    截取了部分结果如下,其中192.168.2.2为默认网关,255.255.255.0为子网掩码。

    # NAT gateway address
    ip = 192.168.2.2
    netmask = 255.255.255.0
    

    然后查看虚拟机允许选择的静态ip地址范围:

    vim /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf
    

    截取了部分结果如下,其中:192.168.2.128 ~ 192.168.2.254 为我们允许配置的静态ip范围。

    ubnet 192.168.2.0 netmask 255.255.255.0 {
            range 192.168.2.128 192.168.2.254;
            option broadcast-address 192.168.2.255;
            option domain-name-servers 192.168.2.2;
            option domain-name localdomain;
            default-lease-time 1800;                # default is 30 minutes
            max-lease-time 7200;                    # default is 2 hours
            option netbios-name-servers 192.168.2.2;
            option routers 192.168.2.2;
    }
    

    获取到以上2个信息之后,我们分别配置三台linux虚拟机的ip地址为:192.168.2.100, 192.168.2.110, 192.168.2.120

    下面进行修改,进入虚拟机里面,打开终端,切换到root,然后编辑ifcfg-ens33文件。

    su root  # 之后的操作都是使用root身份进行
    vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    

    修改其内容为:

    BOOTPROTO="static"            # 原本是BOOTPROTO="dhcp",自动获取改为使用静态固定ip
    IPADDR=192.168.2.100         # 这里使用192.168.2.100
    NETMASK=255.255.255.0         #  子网掩码
    GATEWAY=192.168.2.2           #  这里的网关,填入上面获取到的网关192.168.2.2
    DNS1=8.8.8.8                  # DNS
    

    保存完之后,重启一下网络:

    service network restart
    

    如果反馈结果如下,证明修改成功。

    [root@localhost tiger]# service network restart
    Restarting network (via systemctl):                        [  OK  ]
    

    然后,使用ifconfig命令查看一下ip是否是已经更改。如果正确,在mac终端用ping命令,ping一下mac与虚拟机是否能ping通,如果配置正确,上述命令执行结果应该都是预期的。

    1. 关闭防火墙
      这时候,已经可以在mac终端连接虚拟机了,而不必进入虚拟机在虚拟机终端中关闭防火墙。
    ssh root@192.168.2.100
    systemctl disable firewalld.service
    
    1. 关闭selinux
      继续在刚才的终端中,执行:
    vim /etc/selinux/config 
    

    修改为:

    SELINUX=disabled
    
    1. 更改主机名
      约定这三台主机分别更名为node01, node02, node03
    vim /etc/hostname
    

    改为:

    node01
    
    1. 更改主机名与IP地址映射
    vim /etc/hosts
    # 修改为:
    192.168.2.100  node01
    192.168.2.110  node02
    192.168.2.120  node03
    
    1. 三台机器同步时间
    yum -y install ntpdate
    crontab -e    # 增加定时任务:*/1 * * * * /usr/sbin/ntpdate time1.aliyun.com
    
    1. 三台机器添加hadoop用户
      三台linux服务器统一添加普通用户hadoop,并给以sudo权限,用于以后所有的大数据软件的安装
      并统一设置普通用户的密码为 123456。
    useradd hadoop
    passwd hadoop
    chmod u+w /etc/sudoers
    vim /etc/sudoers               # 增加一行:hadoop  ALL=(ALL)       ALL
    chmod u-w /etc/sudoers
    
    1. 定义统一目录
      定义三台linux服务器软件压缩包存放目录,以及解压后安装目录,执行以下命令,创建两个文件夹,一个用于存放软件压缩包目录,一个用于存放解压后目录。
    mkdir -p /kkb/soft     # 软件压缩包存放目录
    mkdir -p /kkb/install  # 软件解压后存放目录
    chown -R hadoop:hadoop /kkb    # 将文件夹权限更改为hadoop用户
    
    1. 安装jdk
      切换到hadoop用户,上传压缩包到服务器的/kkb/soft下面,然后进行解压,配置环境变量即可。
      先在mac终端下用scp把jdk上传到/kkb/soft下面
    scp jdk-8u141-linux-x64.tar.gz hadoop@192.168.2.100:/kkb/soft
    
    su hadoop
    cd /kkb/soft/
    tar -zxf jdk-8u141-linux-x64.tar.gz  -C /kkb/install/
    sudo vim /etc/profile
    # 添加以下配置内容,配置jdk环境变量
    export JAVA_HOME=/kkb/install/jdk1.8.0_141
    export PATH=:$JAVA_HOME/bin:$PATH
    source /etc/profile  # 使环境变量生效
    java -version        # 测试jdk是否安装成功
    
    1. 克隆镜像
      首先关闭node01,然后创建克隆镜像,克隆2台虚拟机centos02, centos03。
    克隆虚拟机

    接着分别开启centos02和centos03,执行上面的第2步和第5步。其中,在第2步中,centos02的ip修改为192.168.2.110,centos03的ip修改为192.168.2.120; 在第5步中,修改centos02的主机名为node02,修改centos03的主机名为node03

    修改完成之后,重启node02和node03使配置生效。

    1. hadoop用户免密登录
      三台机器在hadoop用户下执行以下命令生成公钥与私钥对。
    ssh-keygen -t rsa 
    三台机器在hadoop用户下,执行以下命令将公钥拷贝到node01服务器上面去
    ssh-copy-id  node01
    node01在hadoop用户下,执行以下命令,将authorized_keys拷贝到node02与node03服务器
    cd /home/hadoop/.ssh/
    scp authorized_keys  node02:$PWD
    scp authorized_keys  node03:$PWD
    

    可以额外做一步,使mac也可以免密登录node01, node02, node03,这样就可以直接在mac的终端免密登录这三台服务器了,而不必进入虚拟机里面,使用Linux的terminal。

    # 在mac终端执行
    sudo vim /etc/hosts
    # 修改为:
    192.168.2.100  node01
    192.168.2.110  node02
    192.168.2.120  node03
    # 然后执行
    ssh-copy-id  hadoop@node01    # 这里必须指明hadoop用户,不然默认使用的是当前用户。
    # 然后将node01的authorized_keys同步到三台服务器
    ssh hadoop@node01
    cd /home/hadoop/.ssh/
    scp authorized_keys  node02:$PWD
    scp authorized_keys  node03:$PWD
    

    配置完成之后,使用ssh hadoop@node01ssh hadoop@node02ssh hadoop@node03,测试一下mac是否可以免密登录3台服务器。

    安装Zookeeper
    1. 解压Zookeeper
      可以先在node01上安装Zookeeper然后将文件同步到node02,node03。
      在mac下将zookeeper安装包上传到node01,打开mac终端,执行:
    scp zookeeper-3.4.5-cdh5.14.2.tar.gz hadoop@node01:/kkb/soft
    ssh hadoop@node01
    cd /kkb/soft
    tar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz  -C /kkb/install/
    
    1. 修改配置文件
      在node01上执行:
    cd /kkb/install/zookeeper-3.4.5-cdh5.14.2/conf
    cp zoo_sample.cfg zoo.cfg
    mkdir -p /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
    vim  zoo.cfg
    # 修改内容如下:
    dataDir=/kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
    autopurge.snapRetainCount=3
    autopurge.purgeInterval=1
    server.1=node01:2888:3888
    server.2=node02:2888:3888
    server.3=node03:2888:3888
    
    1. 添加myid配置
      在第一台机器的/kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/
      这个路径下创建一个文件,文件名为myid ,文件内容为1
    echo 1 >  /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
    
    1. 安装包分发并修改myid的值
    # 第一台机器上面执行以下两个命令
    scp -r /kkb/install/zookeeper-3.4.5-cdh5.14.2/ node02:/kkb/install/
    scp -r /kkb/install/zookeeper-3.4.5-cdh5.14.2/ node03:/kkb/install/
    # 第二台机器上修改myid的值为2
    # 直接在第二台机器任意路径执行以下命令
    echo 2 > /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
    # 第三台机器上修改myid的值为3
    # 直接在第三台机器任意路径执行以下命令
    echo 3 > /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
    
    1. 启动Zookeeper集群
      三台机器启动zookeeper服务,这个命令三台机器都要执行。
    /kkb/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh start
    

    查看启动状态

    /kkb/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh status
    
    查看Zookeeper是否启动

    随便登录node01,node02,node03中的任何一台,执行jps,如果看到QuorumPeerMain这个进程,则证明Zookeeper正常启动。

    相关文章

      网友评论

        本文标题:Zookeeper三节点集群搭建

        本文链接:https://www.haomeiwen.com/subject/gcfmbctx.html