我是map / reduce的新手。一个地图任务的输入是否可能在不同的服务上?假设我想使用map / reduce模拟“字数”,我逐行分割数据(每行一行)。每个地图任务是否会引用一个数据并计算该部分中每个单词的出现次数,这是真的吗?
答案 0 :(得分:1)
输入文件将根据hdfs块大小进行拆分,并且将为每个拆分生成一个map任务。
例如,默认情况下,hdfs块大小为64mb。让我们说您的输入文件大小为50mb。当您将此文件加载到hdfs时,它将被拆分为每个25mb的2个拆分。因此,将生成2个映射任务以处理每个输入拆分。假设一个输入分割有100行,那么映射器类(任务)将调用map方法100次,每行一次。
答案 1 :(得分:1)
使用InputSplit类拆分数据。您可以定义自己的输入拆分类。输入分割数等于映射器数。因此,理论上如果您拥有与输入行一样多的映射器,然后以这种方式编写inputsplit,则每行都可以作为输入提供给map任务。通常,map任务的输入位于同一台机器上。以这种方式映射reduce框架计划映射任务。我建议你阅读一些map reduce的基础知识。 cloudera网站上提供了很好的视频教程。