135.如何进行离线计算-1

  • 应用场景
    • 用户流失预警系统
    • 基于用户购买的挽回系统
    • 用户特征和规则提取系统
    • 数据分析系统
    • 用户画像系统
  • 流程
    • 数据采集
    • 数据预处理
    • 数据建模
    • 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开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值