gpt4 book ai didi

java - 当多个map任务在同一个datanote上并行运行时,datanode内存使用的困惑

转载 作者:行者123 更新时间:2023-12-01 13:07:22 24 4
gpt4 key购买 nike

众所周知,map任务有“io.sort.mb”来限制排序阶段使用的内存。

1)我的困惑是:假设datanode有3G空闲内存,我设置“io.sort.mb”1024m当多个map任务并行运行在同一个datanode上,并且它们需要的内存超过节点上3G的空闲内存时,会发生什么。

类似问题:

2)"mapred.child.java.opts"-Xmx1024m 给出child jvm可以使用的最大内存,如果在1)提到的datanode上并行运行多个map任务时,这些并行map是否有可能占用整个内存3G空闲内存,那么会发生什么。

hbase上类似的问题:

3)假设:在hbase上设置BlockCache 0.3*heap,设置Memstore 0.4*heap,在极端情况下,一个regionserver中存在2个region。 2 个区域都使用 0.6*heap = 1.2 堆。情景会发生吗?

如果您了解以上问题(如果可能发生),欢迎并感谢您的分享。

最佳答案

至少前两个问题的答案来自于对定义这两个属性的配置文件的关注。

它们在mapred-default.xml中定义,并且可以选择在mapred-site.xml中覆盖。

这些配置文件管理整个数据节点,因此配置不是基于单个作业或任务。

例如,io.sort.mb 为 1024 意味着将分配 1024 mb 的数据节点用于运行该节点的所有映射任务的排序阶段。它在所有 map task 之间共享。

我并不完全确定第三个问题,但我的猜测是它应该遵循类似的思路。

关于java - 当多个map任务在同一个datanote上并行运行时,datanode内存使用的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23171131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com