使用ssh连接虚拟机
为了后续操作方便,一般会使用一些软件然后使用ssh远程连接虚拟机(因为VMware里面不能cv操作)一般是使用Xshell,可以去网上找找Xshell 的使用方法,但是我比较懒加上原先电脑里面有wsl,所以就直接使用wsl远程连接,就是使用一个linux系统去连接另外一个Linux系统,不了解wsl的友友们可以去看看wsl,也挺简单的。
首先在虚拟机中查看ssh是否有服务
service sshd status
一般没有出现报错就是原先有ssh
如果没有就安装ssh
sudo yum install sshd
然后使用ip addr查看虚拟机的ip地址
在wsl中使用ssh远程连接(例:ssh 虚拟机用户@虚拟机ip),三台都是如此
然后可以将三台虚拟机中的虚拟机名称更改一下,通过使用
vi /etc/hostname
我是将三台虚拟机分别改为master, slave1, slave2。改完之后重启虚拟机就能看到虚拟机名称改变。
所有节点虚拟机网络配置
修改三台虚拟机的网络配置,将ip类型设置为静态ip,并且IP地址都设置成连续的
vi /etc/sysconfig/network-scripts/ifcfg-ens32
有的是ens32有的是ens33,这个可以自己去看一下
然后将这个文件中的配置设置成
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens32"
DEVICE="ens32"
ONBOOT="yes" #这里是yes
IPADDR="192.168.228.150" #ip地址
PREFIX="24" #子网掩码
GATEWAY="192.168.228.2" #网关
DNS1="114.114.115.115" #DNS
网关可以在VMware中编辑->虚拟网络编辑器->NET模式->NET设置中查看,虚拟机ip地址设置必须与网关在同一网路中,例:
我的网关192.168.228.2
我的虚拟机ip
master 192.168.228.150
slave1 192.168.228.151
slave2 192.168.228.152
三台虚拟机的网络设置都要更改,然后重启一下虚拟机,然后可以试一下ping www.baidu.com能不能行,如果是通的就没什么问题。再用wsl连接(有时候不重启一下会有一些其他问题)。
所有节点设置域名映射解析
对三台虚拟机设置域名映射解析
vi /etc/hosts
在这个文件中添加
192.168.228.150 master
192.168.228.151 slave1
192.168.228.152 slave2
所有节点关闭并且禁用防火墙
如果不关闭后面ssh和Web UI会访问不上
systemctl stop firewalld.service
systemctl disable firewalld.service
所有节点关闭Selinux
vi /etc/selinux/config
将SELINUX改为disabled
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
所有节点配置免密登陆
配置免密登录可以不使用root用户,因为在一般开发环境中是拿不到超级管理员的权限,所以可以在三台虚拟机中都创建一个普通用户。
useradd 用户名
passwd 设置密码
su 用户名 ##切换到普通用户
三台虚拟机可以设置一样的用户名和密码,然后再普通用户模式下
在所有节点生成公钥和私钥
ssh-keygen -t rsa
后面直接所有的交互都敲回车 即可
拷贝公钥到每台服务器
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
验证ssh登录
ssh node001
exit # 退出ssh登录
所有节点配置服务器节点时钟同步
在所有节点安装ntpdate
yum install -y ntpdate
增加定时任务
crontab -e
在文件中添加
*/1 * * * * /usr/sbin/ntpdate -u ntp4.aliyun.com > /dev/null 2>&1
安装常用软件
yum install -y vim net-tools lrzsz rsync wget
创建统一目录
mkdir -p /bigdata/{soft,server}
/bigdata/soft 安装文件的存放目录
/bigdata/server 软件安装的目录
定义同步数据脚本
所有节点配置同步脚本
mkdir /home/用户名/bin
cd /root/bin
vim xsync
#!/bin/bash
#1 获取命令输入参数的个数,如果个数为0,直接退出命令
paramnum=$#
echo "paramnum:$paramnum"
if (( paramnum == 0 )); then
echo no params;
exit;
fi
# 2 根据传入参数获取文件名称
p1=$1
file_name=`basename $p1`
echo fname=$file_name
#3 获取输入参数的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取用户名称
user=`whoami`
#5 循环执行rsync
current=`hostname`
nodes=$(cat `cd ~ && pwd`/bin/works)
for host in $nodes; do
echo ------------------- $host --------------
if [ "$host" != "$current" ];then
rsync -rvl $pdir/$file_name $user@$host:$pdir
fi
done
master节点创建works文件
cd /root/bin
vi works
添加
node001
node002
node004
添加环境变量
vi /etc/profile.d/custom_env.sh
export PATH=$PATH:/root/bin
source /etc/profile
jdk和Hadoop安装请移步从零开始三节点Hadoop集群搭建3(自学用)