- 配置好一台hadoop100模板虚拟机
- JDK1.8
- Hadoop 3.2.1
二、克隆虚拟机模板虚拟机配置:
Hadoop集群搭建-虚拟机创建及CentOS安装
Hadoop集群搭建-网络配置
JDK、Hadoop下载链接:https://share.weiyun.com/bJKx8TFx 密码:xdh2px
利用模板虚拟机hadoop100,克隆出三台虚拟机:hadoop102、hadoop103、hadoop104
选择克隆自虚拟机中的当前状态
创建完整克隆
修改虚拟机名称、位置
等待克隆完成后重复操作、克隆出hadoop103、hadoop104
完成后,进行克隆机的网络配置
修改克隆机的 IP
hadoop102: 192.168.10.102
hadoop103: 192.168.10.103
hadoop104: 192.168.10.104
分别修改主机名
三、安装JDK传输工具使用方法在服务器配置的博客中有,点击连接查看:Linux系统安装JDK
其中远程连接是的服务器外网IP就是自己给虚拟机配置的IP
在hadoop102上安装JDK,这里存放目录为 /opt/software/
opt下新建software目录,将JDK传输到目录中
在/opt下新建module目录,解压JDK到/opt/module目录下
配置环境变量,加入如下内容
source /etc/profile 使配置生效
java -version 测试JDK是否安装成功
看到JDK版本则安装成功
四、安装Hadoop在hadoop102上安装Hadoop,这里存放的目录为 /opt/software/
将Hadoop传输到目录中
解压Hadoop到/opt/module目录下
等待解压完成,查看是否解压成功
获取Hadoop安装路径
将Hadoop添加到环境变量,在my_evn.sh文件中添加下面的内容
source /etc/profile 使配置生效
hadoop version 测试Hadoop是否安装成功 ,看到Hadoop版本则安装成功
至此,完成了集群中一台虚拟机的环境配置,完成搭建集群的准备工作,只需要将安装好的环境拷贝到剩余两台虚拟机上。
五、拷贝环境在hadoop102执行 ping hadoop103 / ping hadoop104
如果不能ping通,要查看 /etc/hosts 配置是否正确
scp(secure copy)安全拷贝
scp可以实现服务器与服务器之间的数据拷贝(from server1 to server2)
scp -r $pdir/$fname $user@$host:$pdir/$fname 命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
确保在hadoop102、hadoop103、hadoop104创建好/opt/module、 /opt/software两个目录。
①在hadoop102,将hadoop102中/opt/module/jdk1.8.0,65目录拷贝到hadoop104上
第一次链接需要输入 yes,输入密码
拷贝成功
②在hadoop104,将hadoop102中/opt/module/hadoop-3.2.1目录拷贝到hadoop104上
拷贝成功
③在hadoop104, 将hadoop102中/opt/module目录下所有目录拷贝到hadoop103上
拷贝成功
rsync远程同步工具
精简版系统会提示 未找到命令,执行命令 yum install rsync 安装(集群中所有虚拟机都要执行)
rsync 主要用于备份和镜像,具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 的区别
- rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新
- scp是把所有文件都复制过去
选项参数: -a 归档拷贝 -v 显示复制过程
rsync -av $pdir/$fname $user@$host:$pdir/$fname 命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
如:同步hadoop102中的/opt/module/hadoop-3.2.1到hadoop103
xsync集群分发脚本
需求:循环复制文件到所有节点的相同目录下
希望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)
在/root/bin 目录下创建xsync文件
xsync文件内容
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
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 +x xsync 修改xsync权限
同步环境变量配置 sudo /bin/xsync /etc/profile.d/my_env.sh
分别在hadoop103、hadoop104上执行 source /etc/profile 使环境变量生效



