假设我的映射器输出 N 个键(这些键是不同的),并且我有 K 个减速器。如何编写自定义 Paritioner 以便每个 reducer 接收大约 N/K 个密钥?哪个键去哪个接收并不重要。
示例:假设我的映射器输出 10 对<k1,v1>,<k2,v2>,<k3,v3>,...<k10,v10>
,并且我有 3 个减速器。我想要 3 对到第 1 个减速器,3 对到第 2 个,4 对到第 3 个,不管哪个键去哪个减速器。
我尝试了什么:
- 随机分配reducer。例如,随机分配
<k1,v1>
给第一个减速器,<k2,v2>
第二个减速器,依此类推。但是仍然有reducers比其他人获得更多的数据 - 我不想修复哪个键去哪个减速器。因为
k1,k2,...k10
我的映射器的键会根据输入数据而变化——>我必须为每个输入数据更改代码。此外,这些键具有相同的作用。我只需要在减速器之间平均分配它们。
非常感谢。