我们在搭建redis集群、zookeper集群、hadoop集群、或者kafaka集群时候,都需要使用多台机器,所以搭建集群服务器是一个后端程序员基本素养。本文目标是:准备搭建5台linux虚拟机

1、软件准备

CentOS-7-x86_64-Minimal-1611.iso、

2、安装要求

搭建5台linux虚拟机;CentOS 7操作系统,64位,每台机器都是1个cpu,1G内存,安装JDK 1.8

3、虚拟机配置

3.1、创建虚拟机

打开Virtual Box,点击“新建”按钮,点击“下一步”,输入虚拟机名称为centos01,选择操作系统为Linux,选择版本为Red Hat-64bit,分配1024MB内存,后面的选项全部用默认,在Virtual Disk File location and size中,一定要自己选择一个目录来存放虚拟机文件(不然的话会存放到c盘下、比较坑),最后点击“create”按钮,开始创建虚拟机。

image.png

image.png

image.png

image.png

image.png

image.png

3.2、设置虚拟机网卡

选择创建好的虚拟机,点击“设置”按钮,在网络一栏中,连接方式中,选择“Bridged Adapter”。(一般常用的搭建虚拟机做实验的方式就是桥接网络)

我们在不同地方办公ip地址变化了,就会导致你的之前搭建的那套虚拟机环境就没法用了。如果你希望无论到哪里,ip地址变化了以后,虚拟机都可以正常工作,不需要重新配置网络,虚拟机如何配置网络,可以更换环境的时候,不需要重新配置,NAT如何配置。参考:https://www.cnblogs.com/cheng...

使用桥接,换了一个网络环境,ip地址都换了,5台虚拟机重新配置一下里面的网卡的一些ip地址;
image.png

3.3、安装虚拟机中的CentOS7操作系统

选择创建好的虚拟机,点击“开始”按钮,选择安装介质(即本地的CentOS 7镜像文件)
image.png
image.png
系统选择自动分片
image.png

image.png
安装完以后,CentOS会提醒你要重启一下,就是reboot,你就reboot就可以了。

4、配置网络

(如果重启网卡使用ip addr时候 没看到人家给你分配的ip地址,你自己虚拟机主机应该是要去连一个路由器(网络)就可以了)
image.png

先让它动态分配一个ip地址

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

ONBOOT=yes //ONBOOT是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯

然后重启服务:service network restart

查看分配的ip:
ip addr

image.png

再设置静态ip地址:
image.png


BOOTPROTO=static
IPADDR=192.168.1.8
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1  //网关直接去虚拟机所在主机去查看对应网卡的网关

然后重启网络

service network restart

查看ipaddr

ip addr

虚拟机宿主机的网关如下:
image.png

mac下查看网关及其dns参考链接:https://jingyan.baidu.com/art...

5、配置DNS

检查NetManager的状态:

systemctl status NetworkManager.service

image.png

检查NetManager管理的网络接口:

nmcli dev status
image.png

检查NetManager管理的网络连接:

nmcli connection show

image.png
需要注意的是,enp0s3设备对应的连接名改为System enp0s3,但对应的ifcfg文件并没有改名,我们改改试试,改之前先备份原配置文件到其他目录(注意,不能备份到network-scripts目录!)

设置dns(有时候报错:nmcli con 错误:unknown connection 'enp0s3'):

nmcli con mod enp0s3 ipv4.dns "114.114.114.114 8.8.8.8"

让dns配置生效:

nmcli con up enp0s3

需要注意的是,enp0s3设备对应的连接名改为enp0s3,但对应的ifcfg文件并没有改名,我们改改试试,改之前先备份原配置文件到其他目录(注意,不能备份到network-scripts目录!)
image.png
此时查看知道其name为enp0s3
image.png

再次执行配置dns即可生效:
image.png

让dns配置生效:

nmcli con up enp0s3

image.png

6、配置host

vi /etc/hosts

配置本机的hostname到ip地址的映射

192.168.1.8 centos01

7、安装文件传输工具

一般来说,虚拟机管理软件,virtual box,可以用来创建和管理虚拟机,但是一般不会直接在virtualbox里面去操作,没有办法复制粘贴,操作很不方便。

一般可以使用SecureCRT,xftp等工具,在windows宿主机中,去连接virtual box中的虚拟机。

8、关闭防火墙

1、关闭虚拟机防火墙

`systemctl stop firewalld.service
systemctl disable firewalld.service`

2、关闭宿主机防火墙

image.png

后面搭建集群、有集群之间通信,在本地你给了防火墙的话,可能会没有办法互相连接,会导致搭建失败。

9.配置yum

yum clean all
yum makecache
yum install -y wget  //安装一个wget来测试yum安装成功与否

image.png

10.安装JDK

文件上传:
上传: scp localpath username@ip:remotepath
文件下载:
scp -r remote_username@remote_ip:remote_folder local_folder

1、将jdk-8u131-linux-x64.rpm上传到虚拟机中

scp /Users/xiexinming/software/package/jdk-8u131-linux-x64.rpm root@192.168.1.8:/usr/local/

image.png

2、安装JDK:rpm -ivh jdk-8u131-linux-x64.rpm

image.png

3、配置jdk相关的环境变量
vi /etc/profile

`export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin`

source /etc/profile

4、测试jdk安装是否成功:java -version

image.png

11.在另外4个虚拟机中安装CentOS集群

按照上述步骤,再安装4台一模一样环境的linux机器
另外三台机器的hostname分别设置为centos02,centos03,centos04,centos05
安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系

192.168.1.8 centos01
192.168.1.xxx centos02
192.168.1.xxx centos03
192.168.1.xxx centos04
192.168.1.xxx centos05

12.配置5台CentOS为ssh免密码互相通信

首先在三台机器上配置对本机的ssh免密码登录

ssh-keygen -t rsa 生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下

image.png

cd /root/.ssh
cp id_rsa.pub authorized_keys

image.png

将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
(我们之前使用ssh连接一台机器的时候,ssh root@ip -p xxx是需要提示输入密码的,但是现在的话,直接是可以连接不需要输入密码。各个机器之间)

接着配置三台机器互相之间的ssh免密码登录

使用ssh-copy-id -i hostname命令将本机的公钥拷贝到指定机器hostname的authorized_keys文件中,那么此时本机就可以免密码连接到指定机器:hostname上了。

image.png

我们之后需要做的是将每台机器的密钥都拷贝到centos01上去,这些机器对centos01就可以免密码登录了。

我们查看/root/.ssh下时候,可以看到5份密钥。

然后把最完整的hadoop01上的authorized_keys文件里面的东西全部拷贝到其他机器上。
(先把其他机器的rm -rf authorized_keys)

[CentOS7 linux 中提示 bash: ls: 未找到命令...]

执行ls命令时报找不到命令,原因是环境变量PATH被修改,

解决办法:

执行 export PATH=/bin:/usr/bin:$PATH

备注

常用指令:
管理员权限:sudo(下文配置时的指令操作如果出现错误,就在指令前加sudo
防火墙状态:systemctl status firewalld.service
关闭防火墙:systemctl stop firewalld.service
编辑enp0s3网卡:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
重启network:service network restart
更改DNS
查看当前启动的连接:nmcli connection show
更改DNS:nmcli con mod enp0s3 ipv4.dns 114.114.114.114
配置生效:nmcli con up enp0s3
取消当前指令:Ctrl/Command + Z
保存文件并退出:先按Esc;然后 Shift + ; (即输入“:”)最后输入wq

参考

参考链接:
https://blog.csdn.net/robin_j...

https://blog.csdn.net/baidu_2...


startshineye
91 声望26 粉丝

我在规定的时间内,做到了我计划的事情;我自己也变得自信了,对于外界的人跟困难也更加从容了,我已经很强大了。可是如果我在规定时间内,我只有3分钟热度,哎,我不行,我就放弃了,那么这个就是我自己的问题,因为你自己...