这是我第二次遇到这个问题(第一次是使用 hadoop + mongodb)。
基本上每个拆分都有一个映射(使用 mongo 的块,使用 hbase 的区域),然后将所有数据发送到减速器(在 shuffle、sort 和(opt.)combine 之后)。
默认情况下,我每台服务器有 2 个减速器(tasktracker),并且我有一个 3 个节点的集群,所以我有 6 个减速器。
问题就在这里:我的减速器“返回”(context.write())将实例放入 hbase(或 BSONWritable 到 mongodb),但通常,许多减速器减少了一个键。假设密钥 A 减少了 6 个减速器。每个人都发回一个 Put 到 hbase(BSONWritable 到 mongodb)=> 我只得到部分结果(可能是最后发送的?)!
有什么帮助吗?如果您需要更多信息,请告诉我。
谢谢!