赞
踩
目录
前提:在 hadoop102 、 hadoop103 、 hadoop104 都已经创建好的 /opt/module 、/opt/software 两个目录,并且已经把这两个目录修改为 xjx:xjxsudo chown xjx:xjx-R /opt/module
hadoop100
hadoop102
hadoop103
hadoop104
scp -r /opt/module/jdk1.8.0_212 xjx@hadoop103:/opt/module
(b)在 hadoop103 上,将 hadoop102 中/opt/module/hadoop-3.1.3 目录拷贝到
scp -r xjx@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/
(c)在 hadoop103 上操作,将 hadoop102 中/opt/module 目录下所有目录拷贝到
scp -r xjx@hadoop102:/opt/module/* xjx@hadoop104:/opt/module
yum -y install rsync
rm -rf wcinput/
rsync -av hadoop-3.1.3/ xjx@hadoop103:/opt/module/hadoop-3.1.3/
rsync -av /opt/module xjx@hadoop103:/opt/
- # 查看 全局环境变量的路径
- echo $PATH
注:没有/home/xjx/bin路径
- 添加路径代码
- vim /home/xjx/.bashrc
-
-
-
- export PATH=/home/xjx/bin:$PATH
(3)脚本实现
- cd /home/xjx
-
- mkdir bin
-
- vim 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 /home/xjx/bin
(d)同步环境变量配置(root 所有者)
sudo ./bin/xsync /etc/profile.d/my_env.sh
注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。
source /etc/profile
4、SSH无密登录配置
4.1配置ssh
- ssh hadoop103
-
- # 退出
- exit
4.2无密钥配置
(2)生成公钥和私钥
- # 查看所有隐藏文件
- ls -al
-
- pwd
-
- ssh-keygen -t rsa
(3)将公钥拷贝到要免密登录的目标机器上
- ssh-copy-id hadoop102
- ssh-copy-id hadoop103
- ssh-copy-id hadoop104
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。