jus*_*ugh 5 hadoop mapreduce cloudera
我有一个"仅限地图"(没有减少阶段)计划.输入文件的大小足以创建7个map任务,我已经通过查看生成的输出(part-000到part006)验证了这一点.现在,我的集群有8个节点,每个节点有8个内核和8 GB内存以及托管在头节点的共享文件系统.
我的问题是,我可以选择仅在1个节点中运行所有7个映射任务,还是在7个不同的从属节点中运行7个映射任务(每个节点1个任务).如果我能这样做,那么我的代码和配置文件需要进行哪些更改.
我尝试在我的代码中将参数"mapred.tasktracker.map.tasks.maximum"设置为1和7,但我没有发现任何明显的时差.在我的配置文件中,它设置为1.
"mapred.tasktracker.map.tasks.maximum"处理应在每个节点上启动的映射任务数量,而不是每个映射任务要使用的节点数量。在Hadoop架构中,每个节点(从属)有1个任务跟踪器,主节点(主节点)有1个作业跟踪器。因此,如果您设置该属性mapred.tasktracker.map.tasks.maximum,它只会更改每个节点要执行的映射任务的数量。的范围"mapred.tasktracker.map.tasks.maximum"是从1/2*cores/node到2*cores/node
您需要的总体地图任务数量应使用设置setNumMapTasks(int)