Hadoop中的多键等分区

时间:2015-07-22 00:17:45

标签: hadoop mapreduce

目前我正在使用默认分区程序运行一些Hadoop作业,这通常会为每个reducer提供相同的数据块。但是,我的reducer键包含两个字段:

1,foo
2,bar
1,baz

并且每个reducer根据第一个键写入不同的文件夹。

假设我有两个reducer,每个都获得50%的数据,并写下以下文件:

1/chunk-0     # first reducer
  chunk-1     # second reducer
2/chunk-0     # first reducer
 /chunk-1     # second reducer

但是,如果,例如,20%的第一个reducer数据具有键1,80%具有键2,50%的第二个reducer数据具有键1,50%具有键2,则chunk-0和{每个文件夹中的{1}}不均匀。

如何确保在最终输出中,每个文件夹中的块大小相等?似乎我需要一个分区函数,可以执行以下操作:对于每个reducer,n%的reducer数据是key 1,m%的reducer数据是key 2.或者在Hadoop之外进行分区会更简单?

0 个答案:

没有答案