我试图找到一个连贯的解释如何设置以下属性:
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内存。我将第一个节点用于name node/job tracker和data node/task tracker。我不会并行执行任务。对于低内存设置,作业在堆空间上失败,因此我的mapred.child.java.opts设置现在是-xmx3g-xx:+usepallelgc。使用hadoop 1.2.1
1条答案
按热度按时间hfsqlsce1#
mapred.map.tasks
-此属性定义要为作业运行的Map任务数,通常不由作业配置。这通常由输入格式、要处理的文件数和这些文件的可拆分属性来定义。简而言之,您不需要设置这个属性(我使用hadoop已经4年了)。mapred.reduce.tasks
-此属性控制为给定作业运行的缩减器的数量。这由程序员在作业配置阶段进行配置—请参阅jobconf.setnumreducetasks或job.setnumreducetasks。mapred.tasktracker.map.tasks.maximum
-此属性在conf/mapred-site.xml文件中设置,表示给定任务跟踪器节点可以运行的最大并发Map槽数。如果需要更改此值,则需要重新启动tasktracker服务,因为它仅在启动时读取mapred.tasktracker.reduce.tasks.maximum
-与上面的属性一样,这个属性定义了给定任务跟踪器可以运行的最大并发reducer任务数。mapred.reduce.slowstart.completed.maps
-这定义了在reducer任务阶段开始之前需要完成的map任务的比率。这个值由程序员在作业配置阶段设置(您需要手动设置这个属性,因为没有像前两个那样方便的方法)。值的范围介于0和1之间:0表示在任何Map完成之前启动缩减器任务(不建议),1表示在该作业的所有Map任务完成之前不启动任何缩减器任务。该值通常设置为0.8-0.99。