我使用hadoop1.1.1。我的项目正在处理6000多个文档。我的集群包含2个节点:主节点(cpu:corei7, ram:6g)和奴隶(cpu:corei3, ram:12g). Map器的数目是16。在洗牌阶段,当我分配的减速机数量超过1(即2,…,16)时,ram开始交换,这导致系统速度显著降低。如何阻止ram交换?在map和reduce之间的过程中,ram中保存了什么?有什么参考资料吗?谢谢。
nom7f22z1#
那么大师:6g物理内存;每个进程分配2g;8个Map器和8个还原器可以同时运行;如果所有任务都已用完,则需要8x2+8x2、32g内存—超过物理量的5倍。在从机上:12g物理内存;每个任务分配2g;4台绘图机,4台减速机;4x2+4x2,需要16g内存-比物理内存多50%。现在,如果您一次只运行一个作业,那么可以将slowstart配置属性设置为1.0,以确保Map器和还原器不会同时运行,这会有所帮助,但您在主服务器上仍然处于最忙状态。我建议您要么将内存分配减少到1g(如果您真的希望每个节点上有那么多Map/减少插槽),要么减少两个节点的最大任务数,这样您就更接近物理量(如果耗尽)。
1条答案
按热度按时间nom7f22z1#
那么大师:
6g物理内存;
每个进程分配2g;
8个Map器和8个还原器可以同时运行;
如果所有任务都已用完,则需要8x2+8x2、32g内存—超过物理量的5倍。
在从机上:
12g物理内存;
每个任务分配2g;
4台绘图机,4台减速机;
4x2+4x2,需要16g内存-比物理内存多50%。
现在,如果您一次只运行一个作业,那么可以将slowstart配置属性设置为1.0,以确保Map器和还原器不会同时运行,这会有所帮助,但您在主服务器上仍然处于最忙状态。
我建议您要么将内存分配减少到1g(如果您真的希望每个节点上有那么多Map/减少插槽),要么减少两个节点的最大任务数,这样您就更接近物理量(如果耗尽)。