如果某个作业只有一个map而没有reduce,并且所有要处理的数据值都映射到一个键,那么该作业是否只能在一个节点上处理?
答案 0 :(得分:1)
没有。 基本上,节点数量将由映射器的数量确定。 1个映射器将在1个节点上运行,N个映射器在N个节点上运行,每个映射器一个节点。 您的作业所需的映射器数量将由Hadoop设置,具体取决于数据量以及数据将被分割的块大小。每个数据块将由1个映射器处理。 因此,如果您有一定数量的数据,即分为N个块,则需要N个映射器来处理它。
答案 1 :(得分:0)
直接来自Hadoop权威指南,6章,地图剖析减少了工作运行。
“要创建要运行的任务列表,作业计划程序首先检索 客户端从共享文件系统计算的输入拆分。它 然后为每个拆分创建一个地图任务。减少任务的数量 创建是由mapred.reduce.tasks属性决定的 Job,由setNumReduceTasks()方法和调度程序设置 只需创建要运行的减少任务数。任务给出 此时的ID。“