linux-centos7 集群环境搭建

1. 软件版本

1.1. 软件

  • vmware 版本:12.5.6

  • centos 版本:7

1.2. 硬件

  • CPU:> 1 推荐 2 以上
  • 内存:> 2G 推荐 4 以上
  • 硬盘:> 20G 推荐 40 以上

2. 单机设置

2.1. 网络配置

2.1.1. 外部网络环境准备

网断:192.168.200.0

掩码:255.255.255.0

网关:192.168.200.2

宿主机地址:192.168.200.1

2.1.2. 修改网络配置文件

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

配置文件内容:

# 网络类型为以太网(固定)
TYPE=Ethernet
# 设备名称(固定)
DEVICE=ens33
# 网络接口名称(固定)
NAME=ens33
# 允许外部连接
ONBOOT=yes
# 静态模式,不接受动态分布的地址
BOOTPROTO=static
# IPV4 配置失败是否继续初始化网络接口
IPV4_FAILURE_FATAL=no
# IP 地址
IPADDR=192.168.200.101
# 子网掩码
NETMASK=255.255.255.0
# 网关
GATEWAY=192.168.200.2
# DNS 服务,这里直接使用网关
DNS1=192.168.200.2

修改完成后重启网络:

service network restart

2.2. 主机名修改

hostnamectl set-hostname mitchell-100

2.3. 修改 hosts

vi /hosts

写入下方内容

192.168.200.100 mitchell-100

2.4. 关闭 selinux 验证

vi /etc/selinux/config

修改下方内容

SELINUX=disabled

2.5. 内核参数

vi /etc/sysctl.conf

写入下方内容

# 一个监听套接字上最多可以排队等待的未完成连接数量,一般需要大于等于 551
net.core.somaxconn=551

# 系统是否允许分配更多的内存资源给进程,而不管实际的物理内存是否足够
# 0 允许但是会监听、1 不允许、2 允许
vm.overcommit_memory=1

2.6. 关闭防火墙

# 停用防火墙
systemctl stop firewalld.service

# 禁止防火墙开机自启
systemctl disable firewalld.service

# 查看防火墙状态,是否是running
firewall-cmd --state

ps:完成上面的修改后重启让其生效

2.7. 开机自启

授予执行权限

chmod +x /etc/rc.local

打开文件:写入需要开机执行的 shell 代码

vim /etc/rc.local

2.8. 基础软件安装和常用文件夹

# 安装一些常用的软件
yum -y install vim lrzsz rsync xorg-x11-xauth

# 用于存放软件安装包
mkdir /opt/software

# 用于存放安装的软件
mkdir /opt/module

# 创建环境变量文件,后续安装软件环境变量存放在此
touch /etc/profile.d/my_env.sh

2.9. 安装 JAVA 和 MVN

点击下载 jdk 压缩包

点击下载 maven 安装包

上传安装包到 /opt/software 目录下

image-20230329215835629

解压软件包到安装目录

tar -zxvf jdk-8u321-linux-x64.tar.gz -C /opt/module
tar -zxvf apache-maven-3.8.4-bin.tar.gz -C /opt/module
cd /opt/module
mv jdk1.8.0_321 jdk
mv maven-3.8.4 maven

创建环境变量文件并配置环境变量

vim /etc/profile.d/my_env.sh

# 插入下方内容
# -----------------------------------------------
# JAVA
export JAVA_HOME=/opt/module/jdk
export PATH=$PATH:$JAVA_HOME/bin

# MAVEN
export MVN_HOME=/opt/module/maven
export PATH=$PATH:$JAVA_HOME/bin

使配置文件生效

source /etc/profile.d/my_env.sh

# 查看是否成功
java -version
mvn -version

2.10. 创建操作用户

# 创建账号
useradd mitchell 

# 设置密码
passwd mitchell

在 /etc/sudoers 文件内容的下图的位置添加如下内容,从而开启 sudo 权限并允许免密切换到 root

vim /etc/sudoers

添加内容

mitchell ALL=(ALL) NOPASSWD:ALL

image-20220904003243741

获取当前登入的用户,下方三个命令都可以

w
who
whoami

将 /opt/software 和 /opt/software 赋予 mitchell 用户

sudo chown -R mitchell:mitchell /opt/software
sudo chown -R mitchell:mitchell /opt/module

3. 集群环境

将以上的服务器准备三台

3.1. 修改主机名

# 第1台
hostnamectl set-hostname mitchell-101

# 第2台
hostnamectl set-hostname mitchell-102

# 第3台
hostnamectl set-hostname mitchell-103

3.2. 修改网络 IP

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

# 第一台
IPADDR=192.168.200.101

# 第二台
IPADDR=192.168.200.102

# 第三台
IPADDR=192.168.200.103

3.3. 修改 hosts

vim /etc/hosts

添加如下内容

192.168.200.101 mitchell-101
192.168.200.102 mitchell-102
192.168.200.103 mitchell-103

PS:上方修改完成后分别重启

3.4. 配置免密访问

下方的命令需要再三台服务器器删分别执行

3.4.1. root 用户

# 创建并进入 .ssh 目录,该目录如果已经存在可以直接进入
cd /root
mkdir .ssh
cd .ssh

# 构建秘钥,这里会让输入一些信息,我们直接三次回车使用默认的就好
ssh-keygen -t rsa

# 分发秘钥,第一次我们需要输入 yes 和 密码
ssh-copy-id mitchell-101
ssh-copy-id mitchell-102
ssh-copy-id mitchell-103

3.4.2. mitchell 用户

# 创建并进入 .ssh 目录,该目录如果已经存在可以直接进入
cd /home/mitchell
mkdir .ssh
cd .ssh

# 构建秘钥,这里会让输入一些信息,我们直接三次回车使用默认的就好
ssh-keygen -t rsa

# 分发秘钥,第一次我们需要输入 yes 和 密码
ssh-copy-id mitchell@mitchell-101
ssh-copy-id mitchell@mitchell-102
ssh-copy-id mitchell@mitchell-103

# 设置权限,如果配置后发现还是需要输入密码才能访问,分别修改下方权限即可
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3.5. 集群分发脚本

创建脚本

cd /opt/module
mkdir bin
cd ./bin
touch xsync.sh
chmod +x xsync.sh

编辑脚本:vim /opt/module/bin/xsync

#!/bin/bash

# 判断参数个数
if [ $# -lt 1 ]
then
    echo "请输入至少一个文件或文件夹"
    exit;
fi

for host in mitchell-101 mitchell-102 mitchell-103
do
    echo ========================= $host =========================
	
    for file in $@
    do
        if [ -e $file ]
        then
            pdir=$(cd -P $(dirname $file); pwd)
            fname=$(basename $file)
            ssh $host "mkdir -p $pdir"
            rsync -av $pdir/$fname $host:$pdir
        else
            echo $file "不存在"
        fi
    done
done

3.6. JAVA 进程查看脚本

创建脚本

cd /opt/module
mkdir bin
cd ./bin
touch jpsall.sh
chmod +x jpsall.sh

编辑脚本:vim /opt/module/bin/jpsall

#!/bin/bash

for host in mitchell-101 mitchell-102 mitchell-103
do
    echo ========================= $host =========================
    ssh $host jps | grep -v Jps
done
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值