首先,我知道这完全违背了hadoop、parallelism和mr.that的目的,我有一个非常具体的用例。我想把一个完整的序列文件的内容,不管多大,发送到一个单一的Map器示例,但不知道如何处理这个。我知道我可以通过使用身份Map器在reducer中实现这一点,但我不想通过排序/分组的开销将数据放入reducer。我也知道我可以在本地读取序列文件而不需要Map器或缩减器,但这也不适合我的用例。
y1aodyip1#
只需增加块大小,使文件的大小略大于文件的大小。这将确保文件转到单个Map器。将文件放入hdfs时必须这样做。如您所述,由于这些文件是由另一个mr生成的:您可以创建inputformat并重写getsplits()方法。getsplits()返回inputsplits数组。返回单个拆分,而不是将其拆分为多个部分。
1条答案
按热度按时间y1aodyip1#
只需增加块大小,使文件的大小略大于文件的大小。这将确保文件转到单个Map器。将文件放入hdfs时必须这样做。
如您所述,由于这些文件是由另一个mr生成的:
您可以创建inputformat并重写getsplits()方法。
getsplits()返回inputsplits数组。返回单个拆分,而不是将其拆分为多个部分。