Flink实时数仓项目—日志数据采集
前言
实时数仓项目的数据来源有两个,一个是用户行为日志数据,一个是业务数据库中的业务数据,我们需要对这两部分数据进行采集,先进行用户行为日志数据的采集。
一、日志数据采集
1.模拟日志生成器的使用
因为日志数据是用户通过点击等操作产生的,所以没办法拿到真实的数据,这里使用模拟生成日志数据的方式来生成日志数据。
主要流程:运行生成日志数据的springboot程序,然后通过接口进行接受数据,并将数据落盘,形成了日志数据。
2.使用流程
1)将对应生成日志数据的程序文件上传到/opt/module/rt_applog目录下:
[atguigu@hadoop102 ~]$ cd /opt/module/gmall-flink/rt_applog/
[atguigu@hadoop102 rt_applog]$ ll
总用量 45652
-rw-rw-r-- 1 atguigu atguigu 952 3 月 6 14:54 application.yml
-rw-rw-r-- 1 atguigu atguigu 15642393 12 月 29 14:54 gmall2020-mock-log-2020-12-18.jar
-rw-rw-r-- 1 atguigu atguigu 31094068 2 月 5 15:29 gmall-logger-0.0.1-SNAPSHOT.jar
2)根据自己的实际需求修改application.yml文件:
配置说明:
mock.date:生成的数据的日期
mock.url:生成的数据发送到的地址
3)运行jar包:
java -jar gmall2020-mock-log-2020-12-18.jar
注意:zookeeper从3.5开始,AdminServer的端口改成了8080,什么意思,你懂的!
3.创建日志采集springboot程序
1)在IDEA中创建日志采集模块,依赖选取如下:
创建最终结果如下:
2)Kafka配置
因为要将日志数据发送到Kafka,所以要对Kafka进行配置,在application.propeties中配置如下:
# 应用名称
spring.application.name=gmall2022-logger
# 应用服务 WEB 访问端口
server.port=8081
#============== kafka ===================
# 指定 kafka 代理地址,可以多个
spring.kafka.bootstrap-servers=hadoop102:9092
# 指定消息 key 和消息体的编解码方式
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
注意:要修改该web应用的访问端口,否则会与zookeeper的端口冲突
3)日志落盘配置
因为日志数据还要落盘,所以要对落盘进行配置,在Resources中添加logback.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration&g