Hadoop 如何限制映射任务的数量将在每个DataNode上同时运行

Hadoop 如何限制映射任务的数量将在每个DataNode上同时运行,hadoop,mapreduce,yarn,Hadoop,Mapreduce,Yarn,环境: Hadoop 3.0.0 1个NameNode,5个DataNode 我将mapred site.yml上的设置配置如下,以仅限制同时运行的3map任务: <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduc

环境:

  • Hadoop 3.0.0
  • 1个NameNode,5个DataNode
我将
mapred site.yml
上的设置配置如下,以仅限制同时运行的
3
map任务:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.tasktracker.map.tasks.maximum</name>
    <value>3</value>
    <description>The maximum number of map tasks that will be run simultaneously by a task tracker.</description>
</property>
<property>
    <name>mapreduce.tasktracker.reduce.tasks.maximum</name>
    <value>3</value>
    <description>The maximum number of reduce tasks that will be run simultaneously by a task tracker.</description>
</property>

任何帮助都将不胜感激。

该配置参数来自旧的Hadoop 1.x。据我所知,您正在使用3.0.0。试试这个:

<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>3</value>
</property>

纱线.nodemanager.resource.cpu-vcores
3.

您应该在运行NodeManager的每台主机上的Thread-site.xml中设置它。

谢谢!是的,这些属性不再存在于纱线中(也可以这么说),但似乎
warn.nodemanager.resource.cpu vcores
是设置容器的数量,而不是
map task
。容器包括
map task
reduce task
ApplicationMaster
是否有办法限制DataNode上
map task
的确切数量。不确定您试图实现的目标。如果您希望将映射器的数量限制为例如3,但容器的数量限制为例如6,则没有直接的方法。我希望设置每个DataNode可以同时运行的
map task
reduce task
的确切最大数量,例如3
map task
和1
recude task
@Honghe如果您限制NodeManager JVM的最大可用资源,然后设置单个纱线容器的最大可用资源,那么您可以有效地限制该节点上运行的容器总数。您不能指定映射或减少容器,据我所知,通过限制映射程序,您限制了吞吐量。你是在尝试基准测试吗?
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>3</value>
</property>