用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。
技术选择:
数据传输:Flume,Kafka
先启动Hadoop、Zookeeper、Kafka集群
然后启动日志采集Flume
最后生成模拟数据
查看是否将数据成功采集到Kafka
Flume配置文件(file_to_kafka)
#定义组件
a1.sources = r1 #配置sources组件名为r1
a1.channels = c1 #配置channels组件名为c1
#配置source
a1.sources.r1.type = TAILDIR #使用TailDirSource组件来监控指定的文件目录#将名为
f1
的文件组分配给名为r1
的源(source)
a1.sources.r1.filegroups = f1 #a1数据源与r1filegroups关联起来
#读取文件的路径,指定了要监控的文件路径为/opt/module/applog/log/app.*,即监控该目录下所有以app开头的文件
a1.sources.r1.filegroups.f1 = /opt/module/applog/log/app.*
#记录了Flume读取文件的当前位置或偏移量。
#为了确保在Flume重启或发生故障后能够从上次停止的位置继续读取数据,而不是从头开始,从而提高数据的可靠性和传输的连续性。
a1.sources.r1.positionFile = /opt/module/flume/taildir_position.json
#配置channel#使用Kafka通道来传输数据
a1.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
#定义了Kafka集群的地址,Flume将使用这些地址连接到Kafka集群
a1.channels.c1.kafka.bootstrap.servers = hadoop102:9092,hadoop103:9092
#指定的Kafka主题为topic_log,所有的事件都将被发送到这个主题中
a1.channels.c1.kafka.topic = topic_log
#不将数据封装成event,直接将原来的数据传输给kafka
a1.channels.c1.parseAsFlumeEvent = false
#组装
#c1 连接Source(数据源)和前面定义的KafkaChannel通道。#由Source生成的数据将被发送到名为c1的KafkaChannel中。
a1.sources.r1.channels = c1