用户行为数据采集 第5节 日志采集分析、ETL拦截器、分类型拦截器及脚本编写

上篇: 用户行为数据采集 第4 节 完全分布式的 zk、 xcall、dt、lg脚本编写


1、Flume采集

在这里插入图片描述

安装Flume
  1. 上传Flume压缩包
[root@hadoop1 hadoop]# ll
total 54408
-rw-r--r--. 1 root root 55711670 Apr  3 06:25 apache-flume-1.7.0-bin.tar.gz
  1. 解压Flume
[root@hadoop1 hadoop]# tar -zxvf apache-flume-1.7.0-bin.tar.gz -C module/
  1. 配置Flume
//进入flume安装目录
[root@hadoop1 hadoop]# cd module/flume-1.7.0/
[root@hadoop1 flume-1.7.0]# cd conf/
[root@hadoop1 conf]# vim flume-env.sh

//添加参数
export JAVA_HOME=/usr/local/etc/java/moduce/jdk1.8.0_221
  1. 分发到其他机器上,分发之前三台机器都需要关闭防火墙systemctl stop firewalld.service
[root@hadoop1 module]# scp -r flume-1.7.0/ hadoop2.x:/usr/local/etc/hadoop/module/
[root@hadoop1 module]# scp -r flume-1.7.0/ hadoop3.x:/usr/local/etc/hadoop/module/
集群规划:
服务器hadoop1.x 服务器hadoop2.x 服务器hadoop3.x
Flume(采集日志) Flume Flume

2、项目经验之Flume组件

  1. Source
    (1)Taildir Source相比Exec Source、Spooling Directory Source的优势
    TailDir Source:断点续传、多目录。Flume1.6以前需要自己自定义Source记录每次读取文件位置,实现断点续传。
    Exec Source可以实时搜集数据,但是在Flume不运行或者Shell命令出错的情况下,数据将会丢失。
    Spooling Directory Source监控目录,不支持断点续传。
    (2)batchSize大小如何设置?
    答:Event 1K左右时,500-1000合适(默认为100)

  2. Channel
    采用Kafka Channel,省去了Sink,提高了效率。


3、日志采集Flume配置

  1. Flume配置分析
    日志采集Flume
    在这里插入图片描述
    Flume直接读log日志的数据,log日志的格式是app-yyyy-mm-dd.log。
  2. Flume的具体配置如下:
    (1)在module/flume/conf目录下创建file-flume-kafka.conf文件
[root@hadoop1 module]# cd flume-1.7.0/conf/
[root@hadoop1 conf]# vim file-flume-kafka.conf

//添加参数
a1.sources=r1
a1.channels=c1 c2

# configure source
a1.sources.r1.type = TAILDIR
a1.sources.r1.positionFile =  /opt/test/log_position.json 
a1.sources.r1.filegroups = f1
a1.sources.r1.filegroups.f1 = /tmp/logs/app.+
a1.sources.r1.fileHeader = true
a1.sources.r1.channels = c1 c2

#interceptor
a1.sources.r1.interceptors =  i1 i2
a1.sources.r1.interceptors.i1.type = com.study.flume.interceptor.LogETLInterceptor$Builder
a1.sources.r1.interceptors.i2.type = com.study.flume.interceptor.LogTypeInterceptor$Builder

a1.sources.r1.selector.type = multiplexing
a1.sources.r1.selector.header = topic
a1.sources.r1.selector.mapping.topic_start = c1
a1.sources.r1.selector.mapping.topic_event = c2

# configure channel
a1.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.kafka.bootstrap.servers = hadoop1.x:9092,hadoop2.x:9092,hadoop3.x:9092
a1.channels.c1.kafka.topic = topic_start
a1.channels.c1.parseAsFlumeEvent = false
a1.channels.c1.kafka.consumer.group.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值