使用HBase中的MapReduce计算平均计数

时间:2014-05-30 03:50:37

标签: hadoop map hbase reduce

我有一个名为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中执行此操作?我已经在考虑只使用一个能够根据时间计算活动总数的减速器。

由于

1 个答案:

答案 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