gpt4 book ai didi

java - 如何告诉 MapReduce 同时使用多少个映射器?

转载 作者:可可西里 更新时间:2023-11-01 16:34:43 26 4
gpt4 key购买 nike

我正在为 MapReduce 编写一个索引应用程序。我能够使用 NLineInputFormat 拆分输入,现在我的应用程序中有几百个映射器。但是,其中只有 2/mashine 同时处于 Activity 状态,其余为“待定”。我相信这种行为会显着降低应用程序的速度。

如何让 hadoop 在每台机器上同时运行至少 100 个?

我使用的是旧的 hadoop api 语法。到目前为止,这是我尝试过的:

    conf.setNumMapTasks(1000);
conf.setNumTasksToExecutePerJvm(500);

这些似乎都没有任何效果。

我有什么想法可以让映射器真正并行运行吗?

最佳答案

JobConf.setNumMapTasks()只是对MR框架的提示,我不确定调用它的效果。在您的情况下,整个作业中的 map task 总数应等于输入中的总行数除以 NLineInputFormat 中配置的行数。您可以找到有关整个作业中 map/reduce 任务总数的更多详细信息 here .

mapred.tasktracker.map.tasks.maximum 的描述说

The maximum number of map tasks that will be run simultaneously by a task tracker.

您需要配置 mapred.tasktracker.map.tasks.maximum(默认为 2)以更改任务跟踪器在特定节点上并行运行的 map task 的数量。我无法获得 0.20.2 的文档,所以我不确定该参数是否存在,或者是否在 0.20.2 版本中使用了相同的参数名称。

关于java - 如何告诉 MapReduce 同时使用多少个映射器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com