在Hadoop伪分布式模式下充分利用所有核心
我正在我的4核笔记本电脑上以伪分布式模式运行任务。 如何确保有效使用所有核心。 目前我的工作跟踪器显示一次只执行一项工作。 这是否意味着只使用一个核心?
以下是我的配置文件。
CONF /芯-site.xml中:
fs.default.name hdfs://localhost:9000
CONF / HDFS-site.xml中:
dfs.replication 1
CONF / mapred-site.xml中:
mapred.job.tracker localhost:9001
编辑:根据答案,我需要在mapred-site.xml中添加以下属性
mapred.map.tasks 4 mapred.reduce.tasks 4
mapred.map.tasks
和mapred.reduce.tasks
将控制它,并且(我相信)将在mapred-site.xml
设置。 然而,这将这些建立为群集范围的默认值; 更常见的是,您可以在每个作业的基础上配置这些。 您可以使用-D
在java命令行上设置相同的参数
mapreduce.tasktracker.map.tasks.maximum
和mapreduce.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.tasks
和mapred.reduce.tasks
属性控制作业的map / reduce任务总数,而不是每个节点的任务数。 此外, mapred.map.tasks
是Hadoop框架的提示,作业的总映射任务数等于InputSplits的数量。