Hadoop 如果群集中的映射任务比节点少?

Hadoop 如果群集中的映射任务比节点少?,hadoop,mapreduce,hdfs,Hadoop,Mapreduce,Hdfs,正如我们所知,尽可能多的块意味着许多映射任务 MapReduce中的井图任务通常一次在一个区块上运行。因此,如果我们的任务太少(集群中的节点数太少),那么为什么作业会比其他情况下运行得慢呢?是的,你是对的。Hadoop不擅长“缩小”作业占用的插槽少于集群中可用的插槽 例如,假设您有100个节点,每个节点有10个贴图槽。这意味着你有1000个地图槽。假设一个块处理一个映射任务需要1分钟。如果您的作业只有5个区块,则该作业需要约1分钟。如果您的作业有20个区块,则该作业将需要约1分钟。如果您的作业具

正如我们所知,尽可能多的块意味着许多映射任务


MapReduce中的井图任务通常一次在一个区块上运行。因此,如果我们的任务太少(集群中的节点数太少),那么为什么作业会比其他情况下运行得慢呢?

是的,你是对的。Hadoop不擅长“缩小”作业占用的插槽少于集群中可用的插槽

例如,假设您有100个节点,每个节点有10个贴图槽。这意味着你有1000个地图槽。假设一个块处理一个映射任务需要1分钟。如果您的作业只有5个区块,则该作业需要约1分钟。如果您的作业有20个区块,则该作业将需要约1分钟。如果您的作业具有1000个区块,则该作业将需要约1分钟。如果您的作业有2000个区块,则需要约2分钟


您可以使用较小的块大小来更好地分割问题,但这有一个折衷办法,即在较大的作业上会有更多的开销。

感谢您的快速回答。但我想,要解决这种情况,如果使用较小的块大小,这与hdfs的基本思想背道而驰。因为文件系统并不是用来处理小文件的。我说得对吗?你说得对,开销、网络拥塞以及它会占用namenode.right中的大量内存。大多数有这个问题的人并不担心他们的工作可以在30秒内完成,相反,他们对小工作只需要2分钟感到满意。也就是说,他们只是忽视了这个问题。总体而言,MapReduce的缺点之一。你可以看看火花或黑斑羚,它们更适合“缩小”。好的,谢谢你的建议。到目前为止,我还没有使用过spark和impala。我正在慢慢地建立我的知识库。