我使用 hadoop 1.1.1。我的项目正在处理超过 6000 个文档。我的集群包含 2 个节点:主节点(CPU:COREi7,RAM:6G)和从节点(CPU:COREi3,RAM:12G)。MAPPER 的数量是 16。当我在洗牌阶段分配的 REDUCER 数量超过 1(ei 2,...,16) 时,RAM 开始交换,这会导致我的系统速度显着降低。
如何阻止 RAM 交换?在 MAP 和 REDUCE 之间的过程中,RAM 中保存了什么?有没有参考?
非常感谢。
我使用 hadoop 1.1.1。我的项目正在处理超过 6000 个文档。我的集群包含 2 个节点:主节点(CPU:COREi7,RAM:6G)和从节点(CPU:COREi3,RAM:12G)。MAPPER 的数量是 16。当我在洗牌阶段分配的 REDUCER 数量超过 1(ei 2,...,16) 时,RAM 开始交换,这会导致我的系统速度显着降低。
如何阻止 RAM 交换?在 MAP 和 REDUCE 之间的过程中,RAM 中保存了什么?有没有参考?
非常感谢。
所以在主上:
在奴隶上:
现在,如果您一次只运行一个作业,您可以将 slowstart 配置属性设置为 1.0,以确保映射器和减速器不会同时运行,这会有所帮助,但您仍然会在 master 上达到极限.
我建议您将内存分配减少到 1G(如果您真的希望每个节点上有那么多 map / reduce 插槽),或者减少两个节点的最大任务数,这样您就更接近物理量(如果运行超出)。