|NO.Z.00010|——————————|BigDataEnd|——|Hadoop&PB级数仓.V02|——|PB数仓.v02|会员活跃度分析|taildir/source|
一、日志数据采集
### --- 原始日志数据(一条启动日志)
2020-07-3014: 18: 47.339[
main
]INFOcom.yanqi.ecommerce.AppStart-{
"app_active": {
"name": "app_active",
"json": {
"entry": "1",
"action": "1",
"error_code": "0"
},
"time": 1596111888529
},
"attr": {
"area": "泰安",
"uid": "2F10092A9",
"app_v": "1.1.13",
"event_type": "common",
"device_id": "1FB872-9A1009",
"os_type": "4.7.3",
"channel": "DK",
"language": "chinese",
"brand": "iphone-9"
}
}
二、数据采集的流程:

### --- 选择Flume作为采集日志数据的工具:
~~~ # Flume 1.6
~~~ 无论是Spooling Directory Source、Exec Source均不能很好的满足动态实时收集的需求
~~~ # Flume 1.8+
~~~ 提供了一个非常好用的 Taildir Source
~~~ 使用该source,可以监控多个目录,对目录中新写入的数据进行实时采集
三、日志采集配置:taildir source
### --- taildir source配置
~~~ # taildir Source的特点:
~~~ 使用正则表达式匹配目录中的文件名
~~~ 监控的文件中,一旦有数据写入,Flume就会将信息写入到指定的Sink
~~~ 高可靠,不会丢失数据
~~~ 不会对跟踪文件有任何处理,不会重命名也不会删除
~~~ 不支持Windows,不能读二进制文件。支持按行读取文本文件
### --- taildir source配置
a1.sources.r1.type = TAILDIR
a1.sources.r1.positionFile = /data/yanqidw/conf/startlog_position.json
a1.sources.r1.filegroups = f1
a1.sources.r1.filegroups.f1 = /data/yanqidw/logs/start/.*log
~~~ # positionFile
~~~ 配置检查点文件的路径,检查点文件会以 json 格式保存已经读取文件的位置,解决断点续传的问题
~~~ # filegroups
~~~ 指定filegroups,可以有多个,以空格分隔(taildir source可同时监控多个目录中的文件)
~~~ # filegroups.
~~~ 配置每个filegroup的文件绝对路径,文件名可以用正则表达式匹配
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv014-PB离线数仓
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通