我有一个名为Log
的表,每一行代表一个活动,并且有一个像这样的表结构
info:date,info:ip_address,info:action,info:info
数据的例子是这样的
列族:信息
日期| ip_address |行动|信息
2014年3月3日| 191.2.2.2 |删除|布拉布拉
2014年3月4日| 191.2.2.3 |查看|布拉布拉
2014年3月5日| 191.2.2.4 |创建|布拉布拉
2014年3月3日| 191.2.2.5 |删除|布拉布拉
2014年3月4日| 191.2.2.5 |创建|布拉布拉
2014年3月4日| 191.2.2.6 |删除|布拉布拉
我想要做的是根据时间计算活动总数的平均值。首先要做的是根据时间计算总活动:
时间| total_activity
2014年3月3日| 2
2014年3月4日| 3
2014年3月5日| 1
然后,我想计算输出将像这样表示的total_activity的平均值
(2 + 3 + 1)/ 3 = 2
如何使用MapReduce在HBase中执行此操作?我已经在考虑只使用一个能够根据时间计算活动总数的减速器。
由于
答案 0 :(得分:1)
建议您查看Scalding - 它是编写生产Hadoop作业的最简单,最快捷的方法,可以轻松地与HBase和其他东西绑定。这是一个帮助HBase& amp;的项目。烫伤https://github.com/ParallelAI/SpyGlass/blob/master/src/main/scala/parallelai/spyglass/hbase/example/SimpleHBaseSourceExample.scala
然后看一下Scalding API,找出如何做你想做的事情: https://github.com/twitter/scalding/wiki/Fields-based-API-Reference