【发布时间】:2012-08-11 01:06:39
【问题描述】:
在将部分结果写入我们的 HBase 数据库时,我遇到了一个很少发生的问题。这是我的映射器和减速器的描述:
-
Mappers 计算与特定功能关联的数据,并使用键 = 数据名称和值 = 计数发送 MapWritables。例如:
Key = "Feature X" MapWritables = {"Total Usage":"4", "Unique Usage":2, "Associated Revenue":22}, {"Total Usage":"3", "Unique Usage":1, "Associated Revenue":20} -
如果键相同,Reducers 会将 MapWritable 中的值相加。结果被写入 HBase,其中键是行 ID,列是映射中的键,值是总和。给定上面的示例键和映射,我们将写入 HBase:
rowID = "Feature X" column,value="Total Usage", 7 column,value="Unique Usage", 3 column,value="Associated Revenue", 42
在过去 4 个月中两次(所以不是很频繁),结果已写入 HBase,其中一列的数字非常低(如 1 或 3),其余列的数字正常。当我重新运行作业时,错误的列值会跳到其预期值。两次都“损坏”的不是同一列。没有错误写入日志。
有没有其他人经历过类似的行为?有人有想法吗?任何帮助,将不胜感激。谢谢!
【问题讨论】:
-
你的 Hadoop 版本是什么?还有 Hbase?
-
hadoop-core-0.20.2-cdh3u4, hbase-0.90.4-cdh3u4