java分析日志文件_Hadoop – 分析日志文件(Java)

日志文件如下所示:

Time stamp,activity,-,User,-,id,-,data

2013-01-08T16:21:35.561+0100,reminder,-,User1234,-,131235467,-,-

2013-01-02T15:57:24.024+0100,order,-,User1234,-,-,-,{items:[{"prd":"131235467","count": 5, "amount": 11.6},{"prd": "13123545", "count": 1, "amount": 55.99}], oid: 5556}

2013-01-08T16:21:35.561+0100,login,-,User45687,-,143435467,-,-

2013-01-08T16:21:35.561+0100,reminder,-,User45687,-,143435467,-,-

2013-01-08T16:21:35.561+0100,order,-,User45687,-,-,-,{items:[{"prd":"1315467","count": 5, "amount": 11.6},{"prd": "133545", "count": 1, "amount": 55.99}], oid: 5556}

...

...

编辑

此日志中的具体示例:

User1234收到了提醒 – 此提醒已id = 131235467,之后他下了一个包含以下数据的订单:{items:[{“prd”:“131235467”,“count”:5,“amount”:11.6},{ “prd”:“13123545”,“count”:1,“amount”:55.99}],oid:5556}

在这种情况下,数据的id和prd是相同的,所以我想总结计数*金额 – >在这种情况下,5 * 11.6 = 58并输出它

User 1234 Prdsum: 58

用户45687也发了一个订单,但他没有收到提醒,所以没有总结他的数据

输出:

User45687 Prdsum: 0

此日志的最终输出:

User 1234 Prdsum: 58

User45687 Prdsum: 0

我的问题是:我如何比较(?)这些值 – >数据中的id和prd?

关键是用户.自定义Writable是否有用 – > value =(id,data).我需要一些想法.

作为第一次通过一个Hadoop作业的结果,我建议您按原样获取原始输出总和,因此在Hadoop作业结束时,您得到如下结果:

User1234 Prdsum: 58

User45687 Prdsum: 0

然后有第二个Hadoop作业(或独立作业),它比较各种值并生成另一个报告.

你需要“州”作为第一个Hadoop工作的一部分吗?如果是这样,那么你需要在mapper或reducer中保存一个HashMap或HashTable来存储所有键的值(在这种情况下是用户)来进行比较 – 但这不是一个好的设置,恕我直言.您最好只在一个Hadoop作业中进行聚合,然后在另一个Hadoop作业中进行比较.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值