如何实现map reduce工作,将文件拆分为较小的子文件,以便可以在内存中读取

时间:2014-11-09 00:59:04

标签: python mapreduce hadoop-streaming

我正在尝试在python中编写一个map reduce作业。第一个mapper将文件拆分为多个子文件,reducer将对相同的文件进行一些manupulation并将它组合起来 我如何编写在第一个map reduce中的python中随机分割文件 我正在考虑使用os模块和拆分命令来拆分它,但我的困惑是如果我把它分成30个部分,我如何确保30部分将以相同的方式处理,或者是hadoop确保的情况并发性?

为了更好地理解我的困惑: 假设我将文件拆分为地图作业中的k个部分,我需要传递哪些信息以减少作业以使其在每个拆分文件上运行

1 个答案:

答案 0 :(得分:0)

我假设,128Mb文件作为输入,你想对它做一些计算。 hadoop流将是这样的。对于映射器输入拆分将为2,因此两个映射器将在2(64mb)块上运行。现在在mapper中你将编写逻辑而不是它将输出键/值对。现在两个块的键/值将是根据你的用例,通过合成器,随机播放,排序和1个减速器(默认)。最后你将获得所需的输出。 所以文件拆分和隔离由hadoop框架处理。

此致

Jyoti Ranjan Panda