1.日志数据采集之数据落盘
就是把内存写入磁盘
首先在public之前加上声明
@Slf4j
在loggerController方法下加上
@Resource
private KafkaTemplate<String, String> kafkaTemplate;
//对接mock模块,mock模块发起请求 我们拦截请求做处理
//请求在 /opt/module/flink_log/application.yml
@RequestMapping("applog")
public String getLogger(@RequestParam("param") String jsonStr){
//测试数据流
System.out.println(jsonStr);
//将数据落盘
log.info(jsonStr);
//将数据写入Kafka
kafkaTemplate.send("ods_base_log", jsonStr);
return "success";
}
打开虚拟机中的hadoop和kafka
点击LotterGatterApplication,运行
2.修改SpringBoot核心配置文件
复制下面这些,到箭头指的文件
# 应用名称
spring.application.name=logger-gather
# 应用服务 WEB 访问端口
server.port=8081
#============== kafka ===================
# 指定 kafka 代理地址,可以多个
spring.kafka.bootstrap-servers=hadoop101:9092
# 指定消息 key 和消息体的编解码方式
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
直接覆盖复制,不要保留原来的
删除static
在Resources中新建文件叫logback.xml
把这些复制进去
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 1.定义的一个变量,因为在本地做测试 value路径需window路径 -->
<property name="LOG_HOME" value="/opt/module/flink_log/logs" />
<!-- 定义打印日志方式:打印控制台 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- %msg消息 %n换行 -->
<pattern>%msg%n</pattern>
</encoder>
</appender>
<!-- 定义打印日志方式:滚动文件 -->
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 2.数据最终输出到app.log文件中 -->
<file>${LOG_HOME}/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<!-- 将某一个包下日志单独打印日志 -->
<!-- name="全类名",如下,只打印LoggerController类里面的数据 -->
<logger name="com.zr.logger.LoggerApplication.controller.LoggerController"
level="INFO" additivity="false">
<!-- 变量引用,如果将下面注释掉只会打印到控制台不会写到文件 -->
<appender-ref ref="rollingFile" />
<!-- 变量引用,如果将下面注释掉不会打印到控制台只会写到文件 -->
<appender-ref ref="console" />
</logger>
<root level="error" additivity="false">
<appender-ref ref="console" />
</root>
</configuration>
重新启动应用
打开kafka和zookeeper
新开一个hadoop101上输入,打开kafka消费者
kafka-console-consumer.sh --bootstrap-server hadoop101:9092 --topic ods_base_log
运行数据生成包
打开java -jar gmall2020 -mock-log-2020-12-18.jar
3.业务数据采集
首先我们需要在DataGrip中新建数据表,打开DataGrip
新建MySQL
输入自己虚拟机的用户和密码,点击测试连接
这样就算是成功了,点击确定
cd flink_db
在win的host添加映射
C:\Windows\System32\drivers\etc