配置多台Linux虚拟机——集群化环境前置准备
- 创建多台虚拟机
- 配置主机名映射
- 配置SSH免密登录
- 配置JDK环境
- 关闭防火墙和SELinux
- 添加快照
- 补充命令 `- scp`
创建多台虚拟机
安装集群化软件,首要条件就是要有多台Linux服务器可用。
我们可以使用VMware提供的克隆
功能,将我们的虚拟机额外克隆
出3台来使用。
- 首先,关机当前CentOS系统虚拟机(可以使用root用户执行
init 0
来快速关机) - 右键
我的计算机
->新建文件夹
, 文件夹起名为:虚拟机集群
3. 克隆
右键
要克隆的虚拟机 -> 管理
-> 克隆
鼠标左键
,拖拽到虚拟机集群文件夹
内
- 同样的操作克隆出:
node2
和node3
- 开启
node1
,修改主机名为node1
,并修改固定ip
为:192.168.216.131
5.1、开启node1
,鼠标右键
,点击Open Terminal
5.2、输入su -
并输入密码切换到root
用户,修改主机名:
# 修改主机名
hostnamectl set-hostname node1
5.3、进入网卡配置文件,修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#键盘点击 i ,进入输入模式进行修改
IPADDR="192.168.216.131"
5.4、修改完成后按Esc
键进入命令模式,然后输入:wq
保存退出,重启网卡,最后输入ifconfig
查看IP是否修改成功
# 重启网卡
systemctl stop network
systemctl start network
# 或者直接
systemctl restart network
# 查看ip
ifconfig
- 同样的操作启动
node2
和node3
,
修改node2
主机名为node2
,设置ip
为192.168.216.132
修改node2
主机名为node3
,设置ip
为192.168.216.133
node2
和node3
修改IP
的时候,UUID
可以随意修改一位,和第一台不同!
全部修改完成后,可以互相ping
以下,如果能ping
通,则修改成功!
ping 192.168.216.131
ping 192.168.216.132
- 配置
FinalShell
,配置连接到node1
、node2
、node3
的连接
选择SSH连接(Linux)
,为了简单起见,建议配置root
用户登录
全部配置好后:
在FinalShell
中分别双击node1
、node2
、node3
建立连接
配置主机名映射
- 在Windows系统中修改hosts文件,填入如下内容:
在window系统中以管理员身份
打开记事本,点击文件
-> 打开
路径C:\Windows\System32\drivers\etc
,选择所有文件,选择hosts
在最后加入:
192.168.216.131 node1
192.168.216.132 node2
192.168.216.133 node3
在windows中可以直接ping 主机名
- 在3台Linux的
/etc/hosts
文件中,填入如下内容
( 3台都要添加)
vim /etc/hosts
# 最下面添加
192.168.216.131 node1
192.168.216.132 node2
192.168.216.133 node3
配置好后,可以直接ping 主机名
配置SSH免密登录
简介
- SSH服务是一种用于远程登录的安全认证协议。
- 我们通过
FinalShell
远程连接到Linux
,就是使用的SSH
服务。
SSH服务支持:
- 通过账户+密码的认证方式来做用户认证
- 通过账户+秘钥文件的方式做用户认证
SSH可以让我们通过SSH命令,远程的登陆到其它的主机上,比如:
- 在
node1
执行:ssh root@node2
,将以root
用户登录node2
服务器,输入密码即可成功登陆 - 或者
ssh node2
,将以当前用户直接登陆到node2
服务器。
退出到上一个用户,输入:
exit
SSH免密配置
后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆
1、在每一台机器都执行:ssh-keygen -t rsa -b 4096
,一路回车到底即可;(设置锁和钥匙)
2、 在每一台机器都执行:(共享钥匙)
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
3、执行完毕后,node1
、node2
、node3
之间将完成root
用户之间的免密互通
配置JDK环境
后续的大数据集群软件,多数是需要Java运行环境的,所以我们为每一台机器都配置JDK环境。
JDK配置参阅:Linux系统安装部署Tomcat(超详细操作演示)
关闭防火墙和SELinux
集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。
在每一台机器都执行
systemctl stop firewalld
systemctl disable firewalld
- Linux有一个安全模块:
SELinux
,用以限制用户和程序的相关权限,来确保系统的安全稳定。 -
SELinux
的配置同防火墙一样,非常复杂。
在当前,我们只需要关闭SELinux
功能,避免导致后面的软件运行出现问题即可,
在每一台机器都执行
vim /etc/sysconfig/selinux
# 将第七行,SELINUX=enforcing 改为
SELINUX=disabled
# 保存退出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统
添加快照
为了避免后续出现问题,在完成上述设置后,为 每一台虚拟机 都制作快照,留待使用,要先关机。
关机,输入:
init 0
# 如果重启,输入
init 6
右键
虚拟机 -> 快照
-> 拍摄快照
补充命令 - scp
后续的安装部署操作,我们将会频繁的在多台服务器之间相互传输数据。
为了更加方面的互相传输,我们补充一个命令:scp
scp
命令是cp
命令的升级版,即:ssh cp
,通过SSH协议完成文件的复制。
- 其主要的功能就是:在不同的Linux服务器之间,通过SSH协议互相传输文件。
- 只要知晓服务器的账户和密码(或密钥),即可通过SCP互传文件。
语法:
scp
[-r]
参数1
参数2
(把参数1
复制到参数2
)
-
-r
选项用于复制文件夹使用,如果复制文件夹,必须使用-r
-
参数1
:本机路径 或 远程目标路径 - 参数2:远程目标路径 或 本机路径
如:
scp -r /export/server/jdk root@node2:/export/server/
- 将本机上的
jdk文件夹
, 以root
的身份 复制到node2
的/export/server/
内 - 同SSH登陆一样,账户名可以省略(使用本机当前的同名账户登陆)
如:
scp -r node2:/export/server/jdk /export/server/
将远程node2
的jdk文件夹
,复制到 本机的/export/server/
内
scp命令的高级用法
cd /export/server
scp -r jdk node2:`pwd`/
pwd
==/export/server
,被飘号 包围的字符串会当作命令去执行,pwd
变量记录当前路径- 将本机当前路径的
jdk
文件夹,复制到node2
服务器的 同名路径 下
scp -r jdk node2:$PWD - 将本机当前路径的
jdk
文件夹,复制到node2
服务器的 同名路径 下
一个点
.
表示当前路径,两个点..
表示上一层路径!
注:仅供学习参考,如有不足,欢迎指正!