充分利用Hadoop伪分布式模式下的所有内核



我在我的4核笔记本电脑上运行伪分布式模式的任务。如何确保所有的内核都被有效地使用?目前,我的作业跟踪器显示一次只有一个作业正在执行。这是否意味着只使用一个核心?

以下是我的配置文件。

配置/core-site.xml:

<configuration>
   <property>
       <name>fs.default.name</name>
       <value>hdfs://localhost:9000</value>
   </property>
 </configuration>
配置/hdfs-site.xml:

<configuration>
  <property>
       <name>dfs.replication</name>
       <value>1</value>
  </property>
</configuration>
配置/mapred-site.xml:

<configuration>
   <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>  
   </property>
</configuration>

编辑:根据答案,我需要在mapred-site.xml

中添加以下属性
 <property>
     <name>mapred.map.tasks</name> 
     <value>4</value> 
  </property>
  <property>
     <name>mapred.reduce.tasks</name> 
     <value>4</value> 
  </property>

mapreduce.tasktracker.map.tasks.maximummapreduce.tasktracker.reduce.tasks.maximum属性控制每个节点map和reduce任务的数量。对于4核处理器,从2/2开始,然后根据需要更改值。slot是一个map或reduce slot,将值设置为4/4将使Hadoop框架同时启动4个map和4个reduce任务。在一个节点上,一次总共运行8个map和reduce任务。

mapred.map.tasksmapred.reduce.tasks属性控制作业的map/reduce任务总数,而不是每个节点的任务数。此外,mapred.map.tasks是Hadoop框架的一个提示,并且该作业的map任务总数等于InputSplits的#。

mapred.map.tasksmapred.reduce.tasks将控制这一点,并且(我相信)将在mapred-site.xml中设置。然而,这将这些设置为集群范围的默认值;更常见的情况是,您将在每个作业的基础上配置它们。您可以在java命令行中使用-D

设置相同的参数

相关内容

  • 没有找到相关文章

最新更新