2

我知道有像 CRUNCH_BYTES_PER_REDUCE_TASK 或 mapred.reduce.tasks 这样的属性来设置减速器的数量。

任何人都可以建议配置/覆盖特定 Dofn 的默认减速器,这需要更多时间来执行。

4

2 回答 2

1

ParallelDoOptions通过使用并将其作为第四个参数传递,可以为特定的 DoFn 配置减速器,parallelDo如下所示:

ParallelDoOptions opts = ParallelDoOptions.builder().conf("mapred.reduce.tasks", "64").build();

并将其parallelDo作为第四个参数传入。

于 2016-12-22T12:37:46.750 回答
0

Crunch 的MapFn接口包括scaleFactor方法:

您可以覆盖自定义 DoFns 中的 scaleFactor 方法,以便向 Crunch 计划器提供有关输入数据集在通过 process 方法后将变得多大(或小)的提示。如果在没有提供明确数量的 reducer 的情况下调用 groupByKey 方法,则规划器将尝试根据输入数据的大小来猜测作业应该使用多少个 reduce 任务,这部分是通过使用调用的结果来确定的处理路径中 DoFns 上的 scaleFactor 方法。

来源:http ://crunch.apache.org/user-guide.html#doplan

Javadocs 链接:http ://crunch.apache.org/apidocs/0.15.0/org/apache/crunch/DoFn.html#scaleFactor--

于 2017-09-05T01:59:04.403 回答