hadoop的最佳配置?

时间:2013-12-11 15:27:05

标签: hadoop

我有4个节点,每个节点有24个cpus和7个磁盘。我在每个节点上复制了一个500GB的本地文件。所以现在我有4个文件。每个文件的块都在一个节点上,分布在所有磁盘上。

这种设置的Hadoop mapreduce的最佳配置是什么(我只将它用于这些文件)?我已经尝试将mapred.map.tasks设置为96,但hadoop只创建了4个任务(每个节点一个)。

1 个答案:

答案 0 :(得分:0)

您正在为正在尝试的操作设置错误的配置参数。您想要mapred.tasktracker.map.tasks.maximum。您正在设置的是作业的地图任务数量...在大多数情况下,您永远不应该修改。 mapred.map.tasks设置为块数,所以请不要管它。

将此添加到mapred-site.xml

<property>
   <name>mapred.tasktracker.map.tasks.maximum</name>
   <value>24</value>
</property>

更改此设置后,您需要重新启动tasktrackers。 要验证您是否进行了更改,请查看JobTracker Web界面。你应该在顶部附近看到一些信息,告诉你你打开了多少个地图槽。看它是96,而不是16。


资源分配的工作方式是MapReduce集群有许多映射插槽和减少插槽。作业运行时,作业将使用映射槽。如果作业的地图任务多于地图插槽(非常典型),那么您的地图任务将排在第一个正在运行的地图任务的后面,然后再运行。

当每个节点分别获得4个任务时,您就会看到这一点。它最终会贯穿所有这些。但是,你是对的,有24个核心(我认为这是2个超线程的CPU?)和7个需要更多插槽的磁盘。我听说每个磁盘1个大小,每个核1个,每个核1个(超线程),但它背后没有真正的科学,它完全依赖于工作负载。如果您真的想要获得最佳性能,请尝试不同的值。我建议每个节点10到24个映射槽之间的值。