Java 以大小为M的块组织-MapReduce

Java 以大小为M的块组织-MapReduce,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,假设我有一个如下所示的数据集: 0,0,A 0,1,B 0,2,C 1,4,D 9,5,E 1,3,O 4,4,L 7,8,Z 我想实现一个MapReduce作业,这样我就可以将这些任务分成大小为M的块。假设M=4,那么我希望输出中有一个文件,如: 0,0,A;0,1,B;0,2,C;1,4,D 9,5,E;1,3,O;4,4,L;7,8,Z 我担心这可能是不可能的,因为reducer中的值是由一个公共密钥分组的,而该密钥在此场景中不存在。到目前为止,您尝试了什么?您可以在中读取文件时创建自

假设我有一个如下所示的数据集:

0,0,A
0,1,B
0,2,C
1,4,D
9,5,E
1,3,O
4,4,L
7,8,Z
我想实现一个MapReduce作业,这样我就可以将这些任务分成大小为M的块。假设M=4,那么我希望输出中有一个文件,如:

0,0,A;0,1,B;0,2,C;1,4,D
9,5,E;1,3,O;4,4,L;7,8,Z

我担心这可能是不可能的,因为reducer中的值是由一个公共密钥分组的,而该密钥在此场景中不存在。

到目前为止,您尝试了什么?您可以在中读取文件时创建自己的密钥mapper@cricket_007我使用inputsplit为数据创建键。但是如果M很小,我会不会遇到映射器数量的问题?我能拥有的映射程序有限制吗?我见过有数千个映射程序的工作,但总体上Hadoop不喜欢小文件。您受到的内存限制远远超过了严格意义上的数量限制mappers@cricket_007好的,我应该告诉你大局。我想这样做的原因是通过利用MapReduce的并行性为RTree索引实现某种STR打包。这是可能的,还是我受到集群规格的限制?