(六)日志生成

时间:2022-07-25
本文章向大家介绍(六)日志生成,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

日志启动

1)代码参数说明 // 参数一:控制发送每条的延时时间,默认是0 Long delay = args.length > 0 ? Long.parseLong(args[0]) : 0L;

// 参数二:循环遍历次数 int loop_len = args.length > 1 ? Integer.parseInt(args[1]) : 1000; 2)将生成的jar包log-collector-0.0.1-SNAPSHOT-jar-with-dependencies.jar拷贝到hadoop002服务器/opt/module上,并同步到hadoop003的/opt/module路径下 xsync log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar 3)在hadoop002上执行jar程序 java -classpath log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar com.atguigu.appclient.AppMain >/opt/module/test.log 说明1: java -classpath 需要在jar包后面指定全类名; java -jar 需要查看一下解压的jar包META-INF/ MANIFEST.MF文件中,Main-Class是否有全类名。如果有可以用java -jar,如果没有就需要用到java -classpath 说明2:/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。 标准输入0:从键盘获得输入 /proc/self/fd/0 标准输出1:输出到屏幕(即控制台) /proc/self/fd/1 错误输出2:输出到屏幕(即控制台) /proc/self/fd/2 4)在/tmp/logs路径下查看生成的日志文件 cd /tmp/logs/ ls app-2020-06-10.log

将日志数据传入系统黑洞中,1表示标准输出到控制台,2表示标准输出错误信息,0表示键盘输入 java -classpath log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar com.atguigu.appclient.AppMain 1>/dev/null 2>/dev/null 2给1,1扔入黑洞,全都丢入黑洞,避免占用磁盘空间 java -classpath log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar com.atguigu.appclient.AppMain >/dev/null 2>&1 去掉全类名的写法,把jar包解压后,打开META-INFMANIFEST.MF,如果最后一行Main-Class:跟着全类名,就可以这样使用,与打包的插件功能有关 java -jar log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar >/dev/null 2>&1

集群日志生成启动脚本

1)在/home/shsxt/bin目录下创建脚本lg.sh

vim lg.sh 2)在脚本中编写如下内容 .#! /bin/bash

for i in hadoop002 hadoop003 
do
    ssh $i "java -classpath /opt/module/log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar com.atguigu.appclient.AppMain $1 $2 >/dev/null 2>&1 &"
done

3)修改脚本执行权限 chmod 777 lg.sh 4)启动脚本 lg.sh 5)分别在hadoop002、hadoop003的/tmp/logs目录上查看生成的数据 ls app-2020-06-10.log ls app-2020-06-10.log

远程登录,执行传入的所有命令

.# !/bin/bash

for i in hadoop002 hadoop003 hadoop004 do echo "==========

i "$*" done