Apache 单节点集群(hadoop)中的最大容器数是多少?

Apache 单节点集群(hadoop)中的最大容器数是多少?,apache,hadoop,mapreduce,yarn,hadoop2,Apache,Hadoop,Mapreduce,Yarn,Hadoop2,我是hadoop新手,对它的配置还不熟悉 我只想询问每个节点的最大容器数 我使用单节点群集(6GB ram笔记本电脑) 下面是我的地图和纱线配置: **mapred-site.xml** map-mb : 4096 opts:-Xmx3072m reduce-mb : 8192 opts:-Xmx6144m **yarn-site.xml** resource memory-mb : 40GB min allocation-mb : 1GB yarn.app.mapreduce.am.res

我是hadoop新手,对它的配置还不熟悉

我只想询问每个节点的最大容器数

我使用单节点群集(6GB ram笔记本电脑)

下面是我的地图和纱线配置:

**mapred-site.xml**
map-mb : 4096 opts:-Xmx3072m
reduce-mb : 8192 opts:-Xmx6144m

**yarn-site.xml**
resource memory-mb : 40GB
min allocation-mb : 1GB
yarn.app.mapreduce.am.resource.mb: 1024
yarn.app.mapreduce.am.command-opts: -Xmx768m
mapreduce.[map|reduce].cpu.vcores: 1
mapreduce.[map|reduce].memory.mb: 1024
mapreduce.[map|reduce].java.opts: -Xmx768m

上述设置只能运行4到5个作业。最多8个容器。

在单个NodeManager(hadoop worker)上运行的最大容器数取决于许多因素,如分配给NodeManager使用的内存量,还取决于特定于应用程序的要求

warn.scheduler.*-allocation-*
的默认值为:1GB(最小分配)、8GB(最大分配)、1芯和32芯。所以,最小和最大分配会影响每个节点的容器数量

因此,如果您有6GB RAM和4个虚拟磁芯,则纱线配置应如下所示:

yarn.scheduler.minimum-allocation-mb: 128
yarn.scheduler.maximum-allocation-mb: 2048
yarn.scheduler.minimum-allocation-vcores: 1
yarn.scheduler.maximum-allocation-vcores: 2
yarn.nodemanager.resource.memory-mb: 4096
yarn.nodemanager.resource.cpu-vcores: 4
上面的配置告诉hadoop使用atmost 4GB和4个虚拟核,每个容器可以有128 MB到2 GB的内存和1到2个虚拟核,通过这些设置,一次最多可以运行2个容器,最大资源

现在,对于特定于MapReduce的配置:

**mapred-site.xml**
map-mb : 4096 opts:-Xmx3072m
reduce-mb : 8192 opts:-Xmx6144m

**yarn-site.xml**
resource memory-mb : 40GB
min allocation-mb : 1GB
yarn.app.mapreduce.am.resource.mb: 1024
yarn.app.mapreduce.am.command-opts: -Xmx768m
mapreduce.[map|reduce].cpu.vcores: 1
mapreduce.[map|reduce].memory.mb: 1024
mapreduce.[map|reduce].java.opts: -Xmx768m
使用此配置,理论上最多可以在4个1GB容器中同时运行4个映射器/还原器。实际上,MapReduce应用程序主机将使用1GB容器,因此并发映射程序和还原程序的实际数量将限制为3个。你可以利用内存限制,但可能需要一些实验才能找到最好的

根据经验,应该将堆大小限制在总可用内存的75%左右,以确保运行更平稳

您还可以使用
warn.scheduler.minimum allocation mb
属性设置每个容器的内存


有关生产系统的更多详细配置,请参考hortonworks提供的配置。

在我的Hadoop 2.5.2集群中,有一个主节点具有8GB RAM和8VCPU内核,10个从节点具有2GB RAM和1VCPU内核。为MapReduce应用程序创建了5个InputSplit。一个容器仅在一个从属节点上运行。什么样的配置将使我的应用程序能够使用所有/masx从NDOE。我的目标是用50个从NDOE运行我的应用程序。