Skip to content

配置虚拟机

首先就按正常的来,root123456

配置网络

vim /etc/sysconfig/network-scripts/ifcfg-ens33

shell
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 需要进行修改
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33

#必须为yes
ONBOOT=yes # 需要进行修改

# 下边进行添加
# 配置IP 子网掩码 网关 和 DNS
IPADDR=192.168.100.101
NETMASK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=192.168.100.2
DNS2=114.114.114.114
DNS3=8.8.8.8

systemctl restart network重启网络服务

ping www.baidu.com测试网络是否配置完成

关闭防火墙

systemctl stop firewalld关闭防火墙

systemctl status firewalld查看防火墙状态

systemctl disable firewalld永久禁用防火墙

关闭SELINUX

vi /etc/selinux/config进入文件

修改SELINUX=disabled

更换yum源

首先下载wget:yum -y install wget,因为有些问题,可能无法下载

使用另一种方式

通过curlrpm安装包curl -L -o wget.rpm http://vault.centos.org/7.9.2009/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpm

再通过rpm进行安装rpm -ivh wget.rpm

安装完成后备份系统自带的配置文件cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo-lock

下载源

shell
 # 移动备份
 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 阿里 yum 源
# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 网易 yum 源
# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

上面的源只用下载一个就行

然后:

yum clean all清理旧缓存

yum makecache重新生成本地缓存

配置网络映射和免密登录

1.设置hosts主机映射vim /etc/hosts

192.168.100.101 node01 h1 master
192.168.100.102 node02 h2 slave1
192.168.100.103 node03 h3 slave2

2.设置免密登录:ssh-keygen -t rsa 生成密钥,一直点回车知道结束,ssh-copy-id localhost, 输入密码就可以了[秘钥的保存位置 cd ~/.ssh/]

vi /etc/ssh/ssh_config

配置windows上文件地址:C:\Windows\System32\drivers\etc\hosts

安装Java -JDK8(Linux)

[root@node01 ~]# mkdir -p /opt/yjx
[root@node01 ~]# cd /opt/yjx/
[root@node01 ~]# [上传文件]
[root@node01 ~]# rpm -ivh jdk-8u351-linux-x64.rpm  或者yum install ./jdk-8u351-linux-x64.rpm -y

# 查看安装是否成功
[root@node01 ~]# rpm -qa | grep jdk
# 查看环境变量
[root@node01 ~]# java -version

克隆安装zookeeper

创建node02和node03

配置ip地址

  1. 克隆完成后发现两台机器名字也叫node01 这肯定是不对的,vim /etc/hostname :修改完成后需要重启生效。

  2. 修改网络 只需要将IP改为102,103(node02,node03)即可。

  3. 免密登录:在node01、node02、node03 分别执行 ssh-keygen -t rsa 生成密钥,直接回车就行 后输入 ssh-copy-id node01 ssh-copy-id node02 ssh-copy-id node03 (每一台都要重复此操作)

  4. 上传Zookeeper安装包 文件名:apache-zookeeper-3.8.4-bin.tar.gz https://cloud.189.cn/web/share?code=NzuA3aiiYNFf(访问码:fad9)

  5. 时间同步yum install vim screen ntp -y 准备常用工具包;(时间同步见Day1-1)ntpdate -su api.bz

  6. 上传并解压并且删除安装包

    shell
    [root@node01 ~]# tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /opt/yjx/
    [root@node01 ~]# rm apache-zookeeper-3.8.4-bin.tar.gz -rf
  7. 创建目录并且编辑 zoo.cfg

    shell
    [root@node01 ~]# mkdir -p /var/yjx/zookeeper/data
    [root@node01 ~]# mkdir -p /opt/yjx/apache-zookeeper-3.8.4-bin/logs
    
    [root@node01 ~]# cd /opt/yjx/apache-zookeeper-3.8.4-bin/
    [root@node01 apache-zookeeper-3.8.4-bin]# cp conf/zoo_sample.cfg conf/zoo.cfg
    [root@node01 apache-zookeeper-3.8.4-bin]# vim conf/zoo.cfg
    
    # 修改以下内容 (旁边的数字是行号)
    12 dataDir=/var/yjx/zookeeper/data
    13 dataLogDir=/opt/yjx/apache-zookeeper-3.8.4-bin/logs
    15 clientPort=2181
    37 server.1=node01:2888:3888
    38 server.2=node02:2888:3888
    39 server.3=node03:2888:3888
  8. 接下来将 node01 的 ZooKeeper 所有文件拷贝至 node02 和 node03。推荐从 node02 和 node03 拷贝。

    [root@node01 ~]# scp -r /opt/yjx/apache-zookeeper-3.8.4-bin/ node02:$PWD
    [root@node01 ~]# scp -r /opt/yjx/apache-zookeeper-3.8.4-bin/ node03:$PWD
  9. 在三台节点 /var/yjx/zookeeper/data 目录下分别创建 myid 文件,内容分别为 1,2,3。

    shell
    node01
    [root@node01 ~]# echo 1 > /var/yjx/zookeeper/data/myid
    
    node02
    [root@node02 ~]# mkdir -p /var/yjx/zookeeper/data
    [root@node02 ~]# echo 2 > /var/yjx/zookeeper/data/myid
    
    node03
    [root@node03 ~]# mkdir -p /var/yjx/zookeeper/data
    [root@node03 ~]# echo 3 > /var/yjx/zookeeper/data/myid
    
    #!注意 确定每一个myid只有一行并且没有多余空格
  10. 最后 vim /etc/profile 配置环境变量,环境搭建结束。配完环境变量后 source /etc/profile 重新加载环境变量。

shell
[root@node01 ~]# vim /etc/profile
export ZOOKEEPER_HOME=/opt/yjx/apache-zookeeper-3.8.4-bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
[root@node01 ~]# source /etc/profile
  1. 启动 三个节点都运行 zkServer.sh start ,但是这样太麻烦了,写一个脚本直接批量在三个机器都运行最好,看脚本。
shell
[root@node01 ~]# zkServer.sh start
[root@node02 ~]# zkServer.sh start
[root@node03 ~]# zkServer.sh start
  1. 脚本

/usr/local/bin目录下创建对应服务的脚本:

[root@node01 ~]# cd ~
[root@node01 ~]# vim /usr/local/bin/zookeeper
shell
    #!/bin/bash

    user=$(whoami)
    case $1 in
        "start")
            for i in node01 node02 node03
            do
                echo -e "\e[1;34m==================== $i ZooKeeper 启动 ====================\e[0m"
                sleep 3
                ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
            done
            ;;
        "stop")
            for i in node01 node02 node03
            do
                echo -e "\e[1;34m==================== $i ZooKeeper 停止 ====================\e[0m"
                ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
            done
            ;;
        "status")
            for i in node01 node02 node03
            do
                echo -e "\e[1;34m==================== $i ZooKeeper 状态 ====================\e[0m"
                ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
            done
            ;;
        "restart")
            for i in node01 node02 node03
            do
                echo -e "\e[1;34m==================== $i ZooKeeper 重启 ====================\e[0m"
                ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh restart"
            done
            ;;
    esac
shell
[root@node01 ~]# chmod 750 /usr/local/bin/zookeeper

如有转载或 CV 的请标注本站原文地址

访客数 --| 总访问量 --