hadoop:定义 map/reduce 任务属性

标签 hadoop

我试图找到有关如何设置以下属性的连贯解释:

mapred.map.tasks
mapred.reduce.tasks
mapred.tasktracker.map.tasks.maximum
mapred.tasktracker.reduce.tasks.maximum
mapred.reduce.slowstart.completed.maps

对于一个简洁的用例,我有 4 个节点,有 12 个内核,每个内核有 2 个超线程(所以 cpuinfo 显示 24),64GB 内存。我将第一个节点用于名称节点/作业跟踪器和数据节点/任务跟踪器。我不并行执行作业。对于低内存设置,作业在堆空间上失败,所以我的 mapred.child.java.opts 设置现在是 -Xmx3G -XX:+UseParallelGC。使用 Hadoop 1.2.1

最佳答案

mapred.map.tasks - 此属性定义为作业运行的 map task 数,通常不由您的作业配置。这通常由输入格式、要处理的文件数和这些文件的可拆分属性定义。简而言之,您不需要设置此属性(我已经 4 年没有使用 Hadoop)。

mapred.reduce.tasks - 此属性控制为给定作业运行的 reducer 的数量。这是由程序员在作业配置阶段配置的 - 参见 JobConf.setNumReduceTasksJob.setNumReduceTasks .

mapred.tasktracker.map.tasks.maximum - 此属性在 conf/mapred-site.xml 文件中设置,表示给定任务跟踪器节点可以运行的最大并发映射槽数.如果需要更改此值,则需要重新启动 tasktracker 服务,因为它仅在启动时读取

mapred.tasktracker.reduce.tasks.maximum - 与上述属性一样,该属性定义给定任务跟踪器可以运行的并发 reducer 任务的最大数量。

mapred.reduce.slowstart.completed.maps - 这定义了在 reducer 任务阶段开始之前需要完成的 map 任务的比率。此值由程序员在作业配置阶段设置(您需要手动设置此属性,因为没有像前两个那样的便捷方法)。该值介于 0 和 1 之间:0 是在任何 map 完成之前启动 reducer 任务(不建议),1 是在该作业的所有 map 任务完成之前不启动任何 reducer 任务。该值通常设置为 0.8 - 0.99。

关于hadoop:定义 map/reduce 任务属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20841370/

相关文章:

Hadoop Mapreduce 功能

Hadoop排名列

java - 配置单元 jdbc 连接超时

java - MapReduce从文本文件读取另外两列

python - 使用 Hadoop 计算唯一身份访问者的最佳方法是什么?

sql - 从 Hive 表中选择大量 id

hadoop - 在 Hadoop 中读取分布式文件

hadoop - Hadoop 中的计数命令

hadoop - 如何在写入文件时禁用 Hive 中的日志

JAVA: SparkConf 无法转换为 SparkContext