在HADOOP中随机播放时交换RAM

时间:2013-05-15 20:45:41

标签: hadoop

我使用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中的是什么? 有没有参考?

非常感谢。

1 个答案:

答案 0 :(得分:2)

所以在主人身上:

  • 6G物理RAM;
  • 按流程分配2G;
  • 8个映射器和8个减速器可以同时运行;
  • 8x2 + 8x2,如果所有任务都被最大化,则需要32G内存 - 超过物理量的5倍。

在奴隶上:

  • 12G物理RAM;
  • 每个任务分配2G;
  • 4个映射器,4个减速器;
  • 4x2 + 4x2,需要16G内存 - 比物理内容多50%。

现在,如果您一次只运行一个作业,则可以将slowstart配置属性设置为1.0,以确保映射器和缩减器不会同时运行,这将有所帮助,但您仍然可以使用在主人身上。

我建议你将内存分配减少到1G(如果你真的希望每个节点上有很多map / reduce插槽),或者减少两个节点的最大任务数,这样你就更接近物理量了(如果跑出最大值)。