我知道有像 CRUNCH_BYTES_PER_REDUCE_TASK 或 mapred.reduce.tasks 这样的属性来设置减速器的数量。
任何人都可以建议配置/覆盖特定 Dofn 的默认减速器,这需要更多时间来执行。
我知道有像 CRUNCH_BYTES_PER_REDUCE_TASK 或 mapred.reduce.tasks 这样的属性来设置减速器的数量。
任何人都可以建议配置/覆盖特定 Dofn 的默认减速器,这需要更多时间来执行。
ParallelDoOptions
通过使用并将其作为第四个参数传递,可以为特定的 DoFn 配置减速器,parallelDo
如下所示:
ParallelDoOptions opts = ParallelDoOptions.builder().conf("mapred.reduce.tasks", "64").build();
并将其parallelDo
作为第四个参数传入。
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--