了解datanode和Unix内存中的Hadoop纱线内存

时间:2017-10-20 00:03:42

标签: unix hadoop memory memory-management resourcemanager

我们有20个数据节点和3个管理节点。每个数据节点都有45GB的RAM。

Data node RAM Capacity
45x20=900GB total ram 

Management nodes RAM Capacity
100GB x 3 = 300GB RAM 

我可以看到内存在Hadoop资源管理器URL中完全占用,并且提交的作业处于等待状态,因为900GB占用资源管理器URL中的890GB。

但是,我提出了增加内存容量的请求,以避免使用内存,直到800GB的890Gb。

现在,Unix Team的家伙们在数据节点中说45GB内存80%是完全免费的,使用free -g命令(缓存/缓冲区)显示输出为空闲。但是在Hadoop端(资源管理器)URL表示它已被完全占用,并且由于内存完全占用,很少有作业处于保持状态。我想知道hadoop如何计算资源管理器中的内存并且升级内存是好的,因为它占用每个用户提交的蜂巢作业。

在这里,谁是正确的在RM或Unix免费命令的hadoop输出。

1 个答案:

答案 0 :(得分:0)

UNIX命令free是正确的,因为RM显示保留内存而非内存使用。

如果我提交MapReduce作业,其中1个地图任务请求每个地图任务10GB内存,但地图任务仅使用2GB,那么系统将仅显示2GB使用。 RM将使用10GB,因为即使任务没有使用所有内存,它也必须保留该任务的数量。