当前位置: 首页 > 知识库问答 >
问题:

关于纱线的内存终止限制的问题

胡彭亮
2023-03-14

我无法理解纱线配置。
我在纱线/MapReduce配置中有这样的行:

<name>mapreduce.map.memory.mb</name>
<value>2048</value>

<name>mapreduce.reduce.memory.mb</name>
<value>1024</value>

<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>

这里写着:

默认情况下(“yarn.nodemanager.vmem-pmem-ratio”)设置为2.1。这意味着map或reduce容器最多可以分配2.1倍(“MapReduce.reduce.memory.MB”)或(“MapReduce.map.memory.MB”)的虚拟内存,然后NM才会杀死该容器。

我能得到更好的解释吗?

共有1个答案

呼延原
2023-03-14

每个映射器和Reducer都运行在自己单独的容器中(容器不在映射器和Reducer之间共享,除非它是一个Uber作业。在这里查看关于Uber模式的信息:在Hadoop中“Uber模式”的目的是什么?)。

通常,映射器和还原器的内存需求是不同的。

因此,映射器(mapreduce.map.memory.mb)和还原器(mapreduce.reduce.memory.mb)有不同的配置参数。

因此,根据yarn-site.xml中的设置,Mapper和Redcuer的虚拟内存限制为:

Mapper limit: 2048 * 2.1 = 4300.8 MB

Reducer limit: 1024 * 2.1 = 2150.4 MB

简而言之,映射器和还原器有不同的内存设置和限制。

 类似资料:
  • 作为Apache Flink的新手,以及流处理框架的一般情况下,我有几个关于它的问题,特别是关于并行性的问题。 首先,这是我的代码: 当我想在集群上运行它时,我运行以下命令: 2.为什么Flink没有为这一步使用所有可能的线程? 我注意到源、窗口和接收器由不同的从服务器处理,但我仍然希望在集群上并行处理。 我在这篇文章中读到:https://stackoverflow.com/a/32329010

  • 在放开最后一行注释后执行 : A的引用内存反而降低了,A对B的引用好像并没有解除,为什么会降低内存了? 为什么A对象的内存降低了呢

  • 使用FIXED_WINDOW算法时,"validDuration","MaxAmount"参数是什么意思?

  • 我正在尝试编写一个线程,该线程将在我的主程序的后台运行,并监视某些内容。在某个时候,主程序应该向线程发出安全退出的信号。下面是一个以固定间隔将本地时间写入命令行的最小示例。 当“on”变量没有通过引用传递时,此代码会编译并产生预期的结果,只是线程永远不会终止。一旦变量通过引用传递,我就会收到编译器错误 您能建议一种修复此代码的方法吗? 额外的问题:哪里出了问题,为什么它可以与std::ref一起工

  • 我有一个tomcat服务器,可以处理一些rest API请求。这个tomcat崩溃是由于某些输入中的一个特定rest请求内存不足导致的,这会导致大量堆大小的使用,从而导致所有站点崩溃。 我想限制这个Rest请求内存使用我怎么能做到呢?我通常想保护tomcat免受大内存使用请求崩溃的影响。我怎么能做到呢?也许以某种方式限制所有线程最大堆大小?

  • 这是一个Leetcode问题374。猜数字高或低。描述如下: 我们在玩猜谜游戏。游戏如下:我从1到n中选择一个数字。你必须猜出我选择了哪个数字。每次你猜错了,我都会告诉你我选的数字是高于还是低于你的猜测。调用预定义的API int guess(int num),它返回三个可能的结果: -1: 您的猜测高于我选择的数字(即num 我的代码如下所示,Leetcode在提交时给了我“超出内存限制”的错误