一、模拟数据来源
1. 创建 Maven 项目
在IDEA创建一个名为LogDataSource 的Maven项目,并且在项目中创建包cn.itcast.generate,以及在该包中创建类GenerateLog,该类用于编写模拟Nginx服务生成日志数据的 Java 程序,Maven 项目创建完成的效果如图所示。
2.实现 Java 程序
在包 cn.itcast.generate 下创建类 GenerateLog,在该类中编写模拟 Nginx 服务生成日志数据的代码。
运行结果如下图所示:
3.将 Java 程序封装为jar文件
在 IDEA 的右侧单击“Maven”,在弹出的 Maven 窗口依次单击“LogDataSource”→ “Lifecycle”折叠框,双击“package”选项将 Maven 项目 LogDataSource 封装为 jar 文件
4.上传 jar 文件
在 虚 拟 机 Hadoop1的/export/data 目录下执行“rz”命令,上传jar文件LogDataSource-1.0-SNAPSHOT.jar。
5.创建目录
在虚拟机 Hadoop1 的/export/data/目录下新建/weblog 目录,用于存放日志文件,具体命令如下:mkdir -p /export/data/weblog
6.测试 jar 文件
运行LogDataSource-1.0-SNAPSHOT.jar文件,并指定日志数据写入到/export/data/weblog目录下的nginx.log文件中,在虚拟机Hadoop1的/export/data目录执行如下命令:
java -cp LogDataSource-1.0-SNAPSHOT.jar cn.itcast.generate.GenerateLog /export/data/weblog/nginx.log
7.查看日志数据
开启一个新的虚拟机 Hadoop1 窗口,在/export/data/weblog目录下执行如下命令查看日志文件 nginx.log 中实时写入的日志数据:tail -f /export/data/weblog/nginx.log
二、Flume采集数据
1.在虚拟机 Hadoop1 的/export/servers/flume-1.9.0/conf/目录下创建文件 WebLog.conf,在该文件中指定采集方案。
2.根据指定的采集方案,在虚拟机Hadoop1启动一个Agent,采集日志文件 nginx.log 中的日志数据,在 Flume的安装目录执行如下命令:
·bin/flume-ng agent --name a1 --conf conf/ --conf-file conf/WebLog.conf -Dflume.root.logger=INFO,console
3.查看目标文件itcast-.1734336122819的前 5 行数据为例,查看采集的数据内容。