我有两个集群,每个集群都运行不同版本的 Hadoop。我正在研究 POC,我需要了解 YARN 如何提供同时运行多个应用程序的能力,而 Classic Map Reduce Framework 无法实现这一点。
Hadoop Classic:我有一个 wordcount.jar 文件并在单个集群(2 个 Mappers 和 2 个 Reducers)上执行。我同时开始了两个工作,一个幸运的开始首先得到了两个映射器,完成了任务,然后第二个工作开始了。这是预期的行为。
Hadoop Yarn:相同的 wordcount.jar 和不同的集群(4 个核心,所以总共 4 台机器)。由于 Yarn 没有预先分配 mapper 和 reducer,任何核心都可以用作 mapper 或 reducer。在这里,我还同时提交了两个工作。预期行为:两个作业都应该以 2 个映射器或资源管理器分配的任何配置开始,但至少两个作业都应该开始。
现实:一项工作从 3 个映射器和 1 个减速器开始。第二个作业等到第一个作业完成。
有人可以帮我理解这种行为,以及多节点集群最能体现并行行为吗?