咱们在搭建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...