虚拟网卡设置
使用VMWare软件,点击编辑,虚拟网络编辑器,将其中一个网卡设置为虚拟网络,具体见图片虚拟网卡设置1和图片虚拟网卡设置2
点击图片1的NAT设置按钮,设置图片2的内容
准备ISO文件存放目录和虚拟机文件存放目录
虚拟机使用的ISO文件,和虚拟机生成的文件单独放到各自对应的目录,如下图
创建虚拟机
点击文件,新建虚拟机,出现下图图片,默认选项,直接点下一步
进入如下界面,直接点下一步
选择操作系统为Linux,版本是CentOS64位,具体见下图,点击下一步
更改虚拟机名称,和虚拟机文件存放目录,点击下一步
选择将虚拟磁盘存储为单个文件,见下图,点击下一步
点击自定义硬件按钮,定义内存,CD/DVD位置,网络适配器等相关信息
内存
网络适配器
CD/DVD位置
点击确定,点击完成即可
安装虚拟机
点击开启此虚拟机,如下图
选择第一个,如下图
默认选择,点击continue
进入下个界面
将DATE & TIME设置为上海的时间
INSTALLATION DESTINATION也修改下
点击Begin Installation开始安装,后设置root密码 和 相关用户
安装完成后,点击reboot重启
虚拟机配置
网络配置
配置路径/etc/sysconfig/network-scripts/路径下的ifcfg-ens33文件
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=ens33
UUID=864c4d12-3b0f-470d-ac0f-2f7bd734be6a
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.114.200
NETMASK=255.255.255.0
GATEWAY=192.168.114.2
DNS1=114.114.114.114
DNS2=8.8.8.8
重启网络 service network restart
主机名配置
第一步,/etc/sysconfig/network文件里面添加
HOSTNAME=spark-project-1
第二步,配置/etc/hosts 文件
192.168.114.200 spark-project-1
192.168.114.201 spark-project-2
192.168.114.202 spark-project-3
重启网络 service network restart
关闭防火墙
firewall-cmd --state,查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
systemctl stop firewalld.service,停止firewall
systemctl disable firewalld.service,禁止firewall开机启动
配置yum源
- 备份原来的yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup - 下载阿里云的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo - 清理缓存
yum clean all - 生成新的缓存
yum makecache
然后安装
yum install -y vim
yum install -y net-tools
配置免密登录
ssh-keygen -t rsa
生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下
cd /root/.ssh
cp id_rsa.pub authorized_keys
将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
接着配置三台机器互相之间的ssh免密码登录
使用ssh-copy-id -i spark-project-2命令将本机的公钥拷贝到指定机器的authorized_keys文件中
编写集群分发脚本xsync
- 安装rsync
yum -y install rsync - 在/usr/local/bin目录下创建xsync文件
vim xsync - 使该文件成可执行文件
chmod 777 xsync - 输入如下内容
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount == 0));then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=0;host<3;host++));do
echo $pdir/$fname $user@spark-project-$host:$pdir
rsync -rvl $pdir/$fname $user@spark-project-$host:$pdir
done