克隆虚拟机前 要关机!!!
1、修改三台服务器的IP
hadoop102 、 hadoop103 、 hadoop104
su root
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 主机名称
vim /etc/hostname
#重启
reboot
2、102 安装 JDK HADOOP
为什么只给102 安装?
给102安装之后 不会再给 103 104 安装了 ,而是拷贝
传入linux-java
tar -zxvf jdk-8u361-linux-x64.tar.gz -C /opt/module/
配置环境变量
cd /etc/profile.d/
sudo vim my_env.sh
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_361
export PATH=$PATH:$JAVA_HOME/bin
#更新
source /etc/profile
传入linux-hadoop
tar -zxvf hadoop-3.3.5.tar.gz -C /opt/module/
配置环境变量
cd /opt/module/hadoop-3.3.5
sudo vim /etc/profile.d/my_env.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#更新
source /etc/profile
3、配置完全分布式(102 103 104)
scp 命令
scp -r 文件or目录 目标主机:/目录
scp 命令用法:
不用执行!
# 1、拷贝 jdk hadoop 到其他虚拟机
scp -r jdk1.8.0_361/ ice@hadoop103:/opt/module/
# 2、在 103 拉取 102 的文件
scp -r ice@hadoop102:/opt/module/hadoop-3.3.5 ./
# 3、在 103 把数据从 102 拷贝到 104
scp -r ice@hadoop102:/opt/module/* ice@hadoop104:/opt/module/
rsync 命令
rsync -av 文件/目录 目标主机:/目录
-av
a:归档拷贝
v:显示复制过程
rsync 集群分发脚本
需求:循环复制文件 到所有节点的相同目录上
在 home/ice/bin 目录下创建脚本 就可以全局使用
# 1.还没有bin目录 自己创建
mkdir bin
# 创建 xsync 脚本
vim xsync
xsync脚本 内容
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]; then
echo "Not Enough Argument"
exit
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104; do
echo "=============== $host ==============="
#3. 遍历所有目录,挨个发送
for file in $@; do
#4. 判断文件是否存在
if [ -e $file ]; then
#5. 获取父目录
pdir=$(
cd -P $(dirname $file)
pwd
)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
chmod 777 xsync
重点:
# 用法:同步一下 bin 目录
xsync ./bin/
当前 103 104 还没有 java 环境
# 给 103 104 分发 /module 下的 hadoop、java
xsync /opt/module/
#分发 102 java 环境 到103 104
xsync /etc/profile.d/my_env.sh
该命令 权限 不够了!!!
# 回到 家目录 bin
sudo ./bin/xsync /etc/profile.d/my_env.sh
# 103 014 更新
source /etc/profile