使用限制

本文对MapReduce使用限制项进行说明,不遵循使用限制可能导致业务受到影响。

MaxCompute MapReduce限制项汇总,如下表所示。

边界名

边界值

分类

配置项名称

默认值

是否可配置

说明

Instance内存占用

[256 MB,12 GB]

内存限制

odps.stage.mapper(reducer).memodps.stage.mapper(reducer).jvm.mem

2048 MB+1024 MB

单个Map InstanceReduce Instance占用Memory,有框架Memory(默认2048 MB)和JVMHeap Memory(默认1024 MB)两部分。

Resource数量

256

数量限制

-

单个Job引用的Resource数量不超过256个,Table、Archive按照一个单位计算。

输入路数和输出路数

1024个和256

数量限制

-

单个Job的输入路数不能超过1024(同一个表的一个分区算一路输入,总的不同表个数不能超过64个),单个Job的输出路数不能超过256。

Counter数量

64

数量限制

-

单个Job中自定义Counter的数量不能超过64,CounterGroup NameCounter Name中不能带有井号(#),两者长度和不能超过100。

Map Instance

[1,100000]

数量限制

odps.stage.mapper.num

单个JobMap Instance个数由框架根据Split Size计算得出,如果没有输入表,可以通过odps.stage.mapper.num直接设置,最终个数范围[1,100000]。

Reduce Instance

[0,2000]

数量限制

odps.stage.reducer.num

单个Job默认Reduce Instance个数为Map Instance个数的1/4,用户设置作为最终的Reduce Instance个数,范围[0,2000]。可能出现这样的情形:Reduce处理的数据量会比Map大很多倍,导致Reduce阶段比较慢,而Reduce只能最多2000。

重试次数

3

数量限制

-

单个Map InstanceReduce Instance失败重试次数为3,一些不可重试的异常会直接导致作业失败。

Local Debug模式

Instance个数不超100

数量限制

-

Local Debug模式下:

  • 默认Map Instance个数为2,不能超过100。

  • 默认Reduce Instance个数为1,不能超过100。

  • 默认一路输入下载记录数100,不能超过10000。

重复读取Resource次数

64

数量限制

-

单个Map InstanceReduce Instance重复读一个Resource次数限制<=64次。

Resource字节数

2 GB

长度限制

-

单个Job引用的Resource总计字节数大小不超过2 GB。

Split Size

大于等于1

长度限制

odps.stage.mapper.split.size

256 MB

框架会参考设置的Split Size值来划分Map,决定Map的个数。

STRING列内容长度

8 MB

长度限制

-

MaxComputeSTRING列内容长度不允许超出限制。

Worker运行超时时间

[1,3600]

时间限制

odps.function.timeout

600

Map或者Reduce Worker在无数据读写且没有通过context.progress()主动发送心跳的情况下的超时时间,默认值是600s。

MapReduce引用Table资源支持的字段类型

BIGINT、DOUBLE、STRING、DATETIME、BOOLEAN

数据类型限制

-

MapReduce任务引用表资源时,若表字段有其他类型字段执行报错。

MapReduce是否支持读取OSS数据

-

功能限制

-

MapReduce不支持读取OSS数据。

MapReduce是否支持MaxCompute 2.0新类型

-

功能限制

-

MapReduce不支持MaxCompute 2.0新类型。

说明

MaxCompute MapReduce作业暂不支持有Schema的项目,即您的项目一旦升级为支持Schema,将无法使用这类作业。