为什么hadoop需要那么多的ram?

x3naxklr  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(353)

hadoop容器需要的ram要比itsef(我用来测试0.5gb大小的数据)的数据量多出一倍,为什么太多了?
物理内存和容器外虚拟内存的概念是什么:有时会出现异常,比如100mb的物理内存是500mb,但2.5gb的虚拟内存超过2gb。为什么hadoop超过了虚拟内存的限制,只要2gb基本上就足以运行整个操作系统,并将所有数据保存在ram内存中,那么为什么2gb还不够呢?

mec1mxoz

mec1mxoz1#

基本上,您需要更多的ram,因为java运行mapper或reducer任务的开销很大。该进程的java堆+jvm。
在hadoop2中为Map器和归约器配置heapsize的这张图片可能最好地解释了这一点。

虽然您的数据可能都适合.5 gb(作为示例),但hadoop(java)中用于表示数据的数据结构使用的数据更多,并且随着数据的处理,用于计算结果的临时数据结构将使用更多。由于java使用垃圾收集,所以在垃圾收集发生之前,所有这些表示都可能使用堆。

相关问题