咱们在搭建 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=static
IPADDR=192.168.1.8
NETMASK=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 all
yum makecache
yum 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…