咱们在搭建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”按钮,开始创立虚拟机。

3.2、设置虚拟机网卡

抉择创立好的虚拟机,点击“设置”按钮,在网络一栏中,连贯形式中,抉择“Bridged Adapter”。(个别罕用的搭建虚拟机做试验的形式就是桥接网络)

咱们在不同中央办公ip地址变动了,就会导致你的之前搭建的那套虚拟机环境就没法用了。如果你心愿无论到哪里,ip地址变动了当前,虚拟机都能够失常工作,不须要重新配置网络,虚拟机如何配置网络,能够更换环境的时候,不须要重新配置,NAT如何配置。参考:https://www.cnblogs.com/cheng...

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

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

抉择创立好的虚拟机,点击“开始”按钮,抉择装置介质(即本地的CentOS 7镜像文件)


零碎抉择主动分片


装置完当前,CentOS会揭示你要重启一下,就是reboot,你就reboot就能够了。

4、配置网络

(如果重启网卡应用ip addr时候 没看到人家给你调配的ip地址,你本人虚拟机主机应该是要去连一个路由器(网络)就能够了)

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

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

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

而后重启服务:service network restart

查看调配的ip:
ip addr

再设置动态ip地址:

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

而后重启网络

service network restart

查看ipaddr

ip addr

虚拟机宿主机的网关如下:

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

5、配置DNS

查看NetManager的状态:

systemctl status NetworkManager.service

查看NetManager治理的网络接口:

nmcli dev status

查看NetManager治理的网络连接:

nmcli connection show


须要留神的是,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目录!)

此时查看晓得其name为enp0s3

再次执行配置dns即可失效:

让dns配置失效:

nmcli con up enp0s3

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、敞开宿主机防火墙

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

9.配置yum

yum clean allyum makecacheyum install -y wget  //装置一个wget来测试yum装置胜利与否

10.装置JDK

文件上传:
上传: scp localpath username@ip:remotepath

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

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

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

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

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

source /etc/profile

4、测试jdk装置是否胜利:java -version

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目录下

cd /root/.ssh
cp id_rsa.pub authorized_keys
将公钥复制为authorized_keys文件,此时应用ssh连贯本机就不须要输出明码了
(咱们之前应用ssh连贯一台机器的时候,ssh root@ip -p xxx是须要提醒输出明码的,然而当初的话,间接是能够连贯不须要输出明码。各个机器之间)

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

应用ssh-copy-id -i hostname命令将本机的公钥拷贝到指定机器hostname的authorized_keys文件中,那么此时本机就能够免明码连贯到指定机器:hostname上了。

咱们之后须要做的是将每台机器的密钥都拷贝到hadoop01下来,这些机器对hadoop01就能够免明码登录了。

咱们查看/root/.ssh下时候,能够看到5份密钥。

而后把最残缺的hadoop01上的authorized_keys文件外面的货色全副拷贝到其余机器上。
(先把其余机器的rm -rf authorized_keys)

备注

罕用指令:
管理员权限: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...