- 应用场景
- 用户流失预警系统
- 基于用户购买的挽回系统
- 用户特征和规则提取系统
- 数据分析系统
- 用户画像系统
- 流程
- 数据采集
- 数据预处理
- 数据建模
- ETL
- 数据导出
- 工作流调度
135.1 数据采集
- Flume 收集服务器日志到hdfs
type=taildir taildir #可以监控一个目录, 也可以用一个正则表达式匹配文件名进行实时收集
taildir=spooldir + exec + #支持断点续传
agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1
agent1.sources.source1.type = TAILDIR
agent1.sources.source1.positionFile = /var/log/flume/taildir_position.json
agent1.sources.source1.filegroups = f1 f2
# 监控文件内容的改变
agent1.sources.source1.filegroups.f1 = /usr/local/nginx/logs/example.log
# 监控生成的文件
agent1.sources.source1.filegroups.f1 = /usr/local/nginx/logs/.*log.*
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = host
agent1.sources.source1.interceptors.i1.hostHeader = hostname
# 配置sink组件为hdfs
agent1.sinks.sink1.type = hdfs
agent1.sinks.sink1.hdfs.path=
hdfs://node-1:9000/weblog/flume-collection/%y-%m-%d/%H-%M_%hostname
# 指定文件名前缀
agent1.sinks.sink1.hdfs.filePrefix = access_log
# 指定每批下沉数据的记录条数
agent1.sinks.sink1.hdfs.batchSize= 100
agent1.sinks.sink1.hdfs.fileType = DataStream
agent1.sinks.sink1.hdfs.writeFormat =Text
# 指定下沉文件按1G大小滚动
agent1.sinks.sink1.hdfs.rollSize = 1024*1024*1024
# 指定下沉文件按1000000条数滚动
agent1.sinks.sink1.hdfs.rollCount = 1000000
# 指定下沉文件按30分钟滚动
agent1.sinks.sink1.hdfs.rollInterval = 30
# agent1.sinks.sink1.hdfs.round = true
# agent1.sinks.sink1.hdfs.roundValue = 10
# agent1.sinks.sink1.hdfs.roundUnit = minute
agent1.sinks.sink1.hdfs.useLocalTimeStamp = true
# 使用memory类型channel
agent1.channels.channel1.type = memory
agent1.channels.channel1.capacity = 500000
agent1.channels.channel1.transactionCapacity = 600
# Bind the source and sink to the channel
agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1
135.2 数据预处理
- 数据预处理编程技巧
- 对于本次分析无利用的数据 通常采用逻辑删除 建立标记位 通过01或者true false表示数据是否有效
- 对于最后一个字段不固定的情况 可以采用动态拼接的方式
- 静态资源过滤
- js css img (静态数据) 只关心真正请求页面的(index.html)
- data(动态数据)
- 在mr中,如果涉及小且频繁使用的数据,如何优化?
- 每次都从数据库查询 效率极低
- 可以通过数据结构保存在内存中 方便查询 一般在setup方法中进行初始化操作
- 关于mr程序输出文件名
- part-r-00000 表示是reducetask的输出
- part-m-00000 表示是maptask的输出
大数据视频推荐:
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通