• 实时业务指标分析 ---没用


    需求:
    1、采集订单系统应用打印的日志文件
    日志文件使用log4j生成,滚动生成。
    xxxx.log xxxx.log xxxx.log
    xxxx.log.1 xxxx.log.1
    xxxx.log.2
    2、将采集的日志文件保存到kafka中
    (source) 输入:tail -F xxxx.log
    (channel)存储:内存
    (sink) 输出:kafka

    config
    al.source = s1
    a1.channel = c1
    al.sink = k1

    source ==> exec tail -F xxxx.log
    channel ==> RAM
    sink ====> xxx.xxxx.xxxx.KafkaSink //该类必须存放lib目录
    sink.topic = orderMq
    sink.itcast = itcast

    ------------------------------
    map = getConfig()
    value = map.get("itcast")

    3、通过Storm程序消费Kafka中数据
    KafkaSpout()
    Bolt1()
    Bolt2()

    -------------------------------------------------------------------------
    业务:
    订单系统---->MQ---->Kakfa--->Storm

    数据:订单编号、订单时间、支付编号、支付时间、商品编号、商家名称、商品价格、优惠价格、支付金额

    统计双十一当前的订单金额,订单数量,订单人数

    订单金额(整个网站,各个业务线,各个品类,各个店铺,各个品牌,每个商品)
    totalAmount b1Amount c1Amount s1Amount p1Amount ……
    b2Amount+ c1Amount s1Amount p1Amount
    b3Amount c1Amount s1Amount+ p1Amount
    b4Amount c1Amount s1Amount p1Amount
    c1Amount s1Amount p1Amount
    c1Amount s1Amount p1Amount
    c1Amount+ s1Amount p1Amount
    c1Amount s1Amount p1Amount
    s1Amount p1Amount
    s1Amount p1Amount
    s1Amount p1Amount
    s1Amount p1Amount
    s1Amount p1Amount
    s1Amount p1Amount+
    ……

    sql-->update
    整个网站,各个业务线,各个品类,各个店铺,各个品牌,每个商品
    Redis--->
    整个网站:totalAmount
    各个业务线:b1Amount,b1Amount,b1Amount,b1Amount,b1Amount
    各个品类:c1Amount,c1Amount,c1Amount,c1Amount,c1Amount
    各个店铺:s1Amount,s1Amount,s1Amount,s1Amount,s1Amount,s1Amount,s1Amount
    各个品牌: p1Amount,p1Amount,p1Amount,p1Amount,p1Amount,p1Amount,p1Amount
    每个商品:pidAmount,pidAmount,pidAmount,pidAmount,pidAmount,pidAmount


    totalAmount = get(totalAmount)
    totalAmount = set(totalAmount+orderAmount)

    订单数量(整个网站,各个业务线,各个品类,各c1Amount个店铺,各个品牌,每个商品)
    订单人数(整个网站,各个业务线,各个品类,各c1Amount个店铺,各个品牌,每个商品)



    处理流程:
    1、Spout获取外部数据源,数据源是订单的mqmq有固定的格式,比如json串
    2、对订单mq进行解析,得到一个对象->JavaBean
    订单编号、订单时间、支付编号、支付时间、商品编号、商家名称、商品价格、优惠价格、支付金额
    3、对指标进行计数
    //业务中一个订单包含多个商品,需要对每个商品进行指标计算
    //创建订单和取消订单两种类型,在计算总数据的是考虑将取消订单的金额减掉
    //订单中有拆单的逻辑,该如何计算
    4、保存指标数据到Redis

    Storm程序
    KafkaSpout
    FilterBolt
    IndexCountBolt


    作业1:集群搭建成功
    作业2:实时业务指标结合redis进行统计
    作业3:算出各个业务线,各个品类,各c1Amount个店铺,各个品牌,Top10,并实时打印出来 
    榜单、榜单、榜单
    作业4:转化

  • 相关阅读:
    2015-10-09 Fri 晴 加快进度看书
    lseek()函数
    pipe()管道最基本的IPC机制
    linux VFS 内核数据结构
    tcp协议中mss的理解
    tcp的精髓:滑动窗口
    2015-10-11 Sunday 晴 ARM学习
    2015-10-12 晴 审面包车
    2015-10-14 晴 tcp/ip
    pyfits过滤数据更新文件。
  • 原文地址:https://www.cnblogs.com/shan13936/p/13837934.html
Copyright © 2020-2023  润新知