• 1.集群环境搭建


    1.集群信息概览

    在这里插入图片描述

    2.集群环境搭建

    2.1第一台服务器
    1. 修改静态ip
      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      
      • 1
    2. 修改主机名
      echo first-node /etc/hostname
      
      • 1
    3. 修改主机名映射
      echo 192.168.226.140 first-node  >>  /etc/hosts
      echo 192.168.226.141 second-node  >>  /etc/hosts
      echo 192.168.226.142 third-node  >>  /etc/hosts
      
      • 1
      • 2
      • 3
    4. 安装epel软件源
      yum install -y epel-release
      
      • 1
    5. 关闭防火墙,禁止开机自启
      systemctl stop firewalld
      systemctl disable firewalld.service
      
      • 1
      • 2
    6. 给用户赋予root权限:普通用户可以使用sudo来执行特权命令,不再需要输入密码
      vim /etc/sudoers
      
      • 1
      # 找到这一行
      %wheel  ALL=(ALL)       ALL
      # 新增
      用户名 ALL=(ALL)       NOPASSWD:ALL
      
      • 1
      • 2
      • 3
      • 4
    7. 新建两个文件夹,一个存放软件安装包,一个作为安装路径
      sudo mkdir /opt/moudle
      sudo mkdir /opt/software
      
      • 1
      • 2
    8. 修改两个文件夹所属权限为当前用户
      sudo chown fatpuffer:fatpuffer /opt/moudle/ /opt/software/
      
      • 1
    9. 卸载centos7自带java
      su root
      
      rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
      
      • 1
      • 2
      • 3
    10. 重启
      reboot
      
      • 1
    2.2第二台服务器(使用第一台服务器进行克隆)
    1. 修改IP
      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      
      • 1
    2. 修改主机名
      echo second-node /etc/hostname
      
      • 1
    2.3第三台服务器(使用第一台服务器进行克隆)
    1. 修改IP
      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      
      • 1
    2. 修改主机名
      echo third-node /etc/hostname
      
      • 1

    3.配置ssh免密认证(三台服务器都要进行如下操做,完成互信)

    1. 在服务器上生成密钥对
      ssh-keygen  # 可以一路回车
      # 生成完成后,密钥对存储在用户目录下的.ssh文件夹内
      # Your identification has been saved in /home/fatpuffer/.ssh/id_rsa.
      # Your public key has been saved in /home/fatpuffer/.ssh/id_rsa.pub.
      
      • 1
      • 2
      • 3
      • 4
    2. 使用ssh-copy-id命令,将公钥推送到服务器
      ssh-copy-id fatpuffer@first-node
      ssh-copy-id fatpuffer@second-node
      ssh-copy-id fatpuffer@third-node
      
      • 1
      • 2
      • 3
    3. 使用ssh别名
      • 完成上述配置只是在ssh登录时不再需要输入密码,但是还是要输入很长的连接名称:ssh hostname@ip,使用别名后只需要输入:ssh 别名即可
      • 1.在本地/home/fatpuffer/.ssh目录下新建config文件
      • 2.编辑config文件,内容如下
      '''
      Host 别名
          HostName 远程服务器ip
          User 远程服务器用户名
          Port 22
      '''
      Host first-node
          HostName first-node
          User fatpuffer
          Port 22
      
      Host second-node
          HostName second-node
          User fatpuffer
          Port 22
      
      Host third-node
          HostName third-node
          User fatpuffer
          Port 22
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 3.修改权限
      sudo chmod 600 config
      
      • 1
      • 4.体验(将config文件推送到其他两个服务器上)
      scp /home/fatpuffer/.ssh/config second-node:/home/fatpuffer/.ssh/
      scp /home/fatpuffer/.ssh/config three-node:/home/fatpuffer/.ssh/
      
      • 1
      • 2

    4.创建集群文件分发脚本

    4.1查看系统环境变量
    • 可以看到用户目录下的bin目录已经被添加到了系统环境变量,那就直接将分发脚本创建在改目录下,可以使得脚本全局使用
    [fatpuffer@first-node ~]$ echo $PATH
    /usr/local/mysql/bin:
    /usr/local/bin:/usr/bin:
    /usr/local/sbin:/usr/sbin:
    /usr/local/go/bin:
    /home/fatpuffer/.local/bin:
    /home/fatpuffer/bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    4.2创建脚本(/home/fatpuffer/bin/xsync)
    • 主要依赖于rsync同步命令配合ssh远程连接,实现脚本分发
    #!/bin/bash
    
    # 1.判断脚本参数个数
    if [ $# -lt 1 ]
    then
        echo Not enough Arguement!
        exit;
    fi
    
    # 2. 遍历集群所有机器
    for host in first-node second-node third-node
    do
        echo ====================  $host  ====================
    
        # 3. 遍历所有目录,挨个发送
        for file in $@
        do
            # 4. 判断文件是否存在
            if [ -e $file ]
                then
                    # 5. 获取父目录
                    pdir=$(cd -P $(dirname $file); pwd)
    
                    # 6. 获取当前文件的名称
                    fname=$(basename $file)
                    ssh $host "mkdir -p $pdir"
                    rsync -av $pdir/$fname $host:$pdir
                else
                    echo $file does not exists!
            fi
        done
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    4.3使用
    sxync test.txt
    xsync /home/fatpuffer/bin/
    
    • 1
    • 2

    5.安装JDK

    5.1下载jdk
    • 自行下载
    5.2安装
    tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/moudle/
    
    • 1
    5.3配置环境变量
    sudo vim /etc/profile.d/my_env.sh
    
    # JAVA_HOME
    export JAVA_HOME=/opt/moudle/jdk1.8.0_212
    export PATH=$PATH:$JAVA_HOME/bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    5.4更新系统环境变量
    source /etc/profile
    
    • 1
    5.5分发
    • 1.分发安装文件
    xsync /opt/moudle/
    
    • 1
    • 2.分发环境变量配置文件(/etc下的文件需要使用sudo权限)
    sudo /home/fatpuffer/bin/xsync /etc/profile.d/my_env.sh
    
    • 1
    • 3.去对应服务器执行环境变量更新命令
    source /etc/profile
    
    • 1
  • 相关阅读:
    在word、ppt、excel编辑软件标题栏顶部左上角加入自定义功能:另存为、导出PDF
    数字孪生技术解决方案助力智慧核电建设
    驱动——按键中断控制LED灯实验
    七、一起学习Lua 函数
    4.linux的RPM和YUM
    如何自动关闭Oracle数据库服务并重启服务器
    【Docker项目实战】使用Docker部署Plik临时文件上传系统
    Opencv之形态学操作(膨胀、腐蚀、开运算、闭运算、顶帽、黑帽、形态学梯度)
    php初级教程十 过滤器
    一分钟带你了解C语言中数据在内存中的存储详解!
  • 原文地址:https://blog.csdn.net/qq_42517220/article/details/128189970