为什么Hadoop需要那么多的RAM?

时间:2017-04-18 13:37:15

标签: hadoop yarn hadoop2 resourcemanager

Hadoop容器需要更多的RAM,数据大小itsef(我用于测试0.5GB大小的数据)实际上是它的两倍,为什么它太多了?

关于容器的物理内存和虚拟内存的概念是什么:有时你会在物理内存中获得500mb的500mb异常,但虚拟内存中的2.5Gb超过2GB。为什么hadoop超过虚拟内存限制,只要2 GB基本上足以运行整个操作系统并将我的所有数据保存在RAM内存中,为什么2GB还不够?

1 个答案:

答案 0 :(得分:0)

基本上,您需要更多RAM,因为您有运行mapper或reducer任务的Java开销。该进程的Java堆+ JVM。

来自Configuring Heapsize for Mappers and Reducers in Hadoop 2的这张图片可能最能说明这一点。

enter image description here

虽然您的数据可能都符合.5 GB(作为示例),但Hadoop(Java)中用于表示数据的数据结构使用更多,并且在处理数据时,用于计算数据的临时数据结构结果将更多地使用。而且因为Java使用垃圾 收集所有这些表示可能正在使用堆,直到垃圾收集发生。