(尚硅谷数仓4.0视频)
1 集群同步脚本
[yu@node02 ~]$ mkdir bin
在/home/atguigu/bin目录下创建xsync文件,以便全局调用
[yu@hadoop102 ~]$ cd /home/yu/bin
[yu@hadoop102 ~]$ vim xsync
在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in node02 node03 node04
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
修改脚本xsync具有执行权限
[yu@node02 bin]$ chmod 777 xsync
2 SSH无密登录配置
node02上生成公钥和私钥:
[yu@node02 .ssh]$ ssh-keygen -t rsa
拷贝到要免密登录的目标机器上:
[yu@node02 .ssh]$ ssh-copy-id node02
[yu@node02 .ssh]$ ssh-copy-id node03
[yu@node02 .ssh]$ ssh-copy-id node04
简单测试一下
3 模拟数据
3.1生成日志
将application.yml、gmall2020-mock-log-2021-01-22.jar、path.json、logback.xml上传到hadoop102的/opt/module/applog目录下
创建applog路径
[zhang@hadoop102 module]$ mkdir /opt/module/applog
将四个文件直接拖到/opt/module/applog目录
[zhang@hadoop102 applog]$ java -jar gmall2020-mock-log-2021-01-22.jar
查看日志
3.2 集群日志生成脚本
在脚本中编写如下内容
#!/bin/bash
for i in hadoop102 hadoop103; do
echo "========== $i =========="
ssh $i "cd /opt/module/applog/; java -jar gmall2020-mock-log-2021-01-22.jar >/dev/null 2>&1 &"
done
修改权限[zhang@hadoop102 bin]$ chmod 777 lg.sh
删除之前的日志
[zhang@hadoop102 bin]$ cd /opt/module/applog/
[zhang@hadoop102 applog]$ rm -rf log
同步信息
104上不想要,删除
103上有
执行脚本,看看好不好用
查看日志