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