我有一个很少发生的问题,其中部分结果被写入我们的 HBase 数据库。这是我的映射器和减速器的描述:
映射器计算与特定功能关联的数据,并使用键 = 数据名称和值 = 计数发送 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),其余列的数字正常。当我重新运行作业时,错误的列值会跳到其预期值。两次都“损坏”的不是同一列。没有错误写入日志。
有没有其他人经历过类似的行为?有人有想法吗?任何帮助,将不胜感激。谢谢!