1.scp
scp 是 secure copy 的缩写,用于远程的文件的复制,scp可以跨机器复制文件
scp -r hadoop-3.2.3/ root@hadoop2:/opt/software/
将本机的hadoop-3.2.3复制到hadoop2的/opt/software目录下,r代表递归
2.rsync
rsync 是 remote sync 的缩写
rsync -av hadoop-3.2.3/ root@hadoop2:/opt/software/hadoop-3.2.3/
先将hadoop2的hadoop-3.2.3下的wcinput与wcoutput删了,再执行此命令,a归档模式v显示过程
3.scp与rsync区别
- scp是全量拷贝,比较耗时;rsync默认是只拷贝有变动的文件(增量拷贝)
- scp是加密传输;rsync不是
4.在bin目录下创建xsync脚本
xsync脚本内容如下
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2.遍历集群所有机器
for host in hadoop1 hadoop2 hadoop3
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
对脚本授权后,使用脚本分发bin目录和/etc/profile文件
在hadoop2,hadoop3使配置文件生效
5.ssh免密登录
ssh-keygen -t rsa
连续3次回车,会生成公钥与私钥对
配置hadoop1,hadoop2,hadoop3免密登录