全部產品
Search
文件中心

MaxCompute:使用限制

更新時間:Aug 21, 2025

本文對MapReduce使用限制項進行說明,不遵循使用限制可能導致業務受到影響。

MaxCompute MapReduce限制項匯總,如下表所示。

邊界名

邊界值

分類

配置項名稱

預設值

是否可配置

說明

Instance記憶體佔用

[256 MB,12 GB]

記憶體限制

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

2048 MB+1024 MB

單個Map Instance或Reduce Instance佔用Memory,有架構Memory(預設2048 MB)和JVM的Heap Memory(預設1024 MB)兩部分。

Resource數量

256個

數量限制

-

單個Job引用的Resource數量不超過256個,Table、Archive按照一個單位計算。

輸入路數和輸出路數

1024個和256個

數量限制

-

單個Job的輸入路數不能超過1024(同一個表的一個分區算一路輸入,總的不同表個數不能超過64個),單個Job的輸出路數不能超過256。

Counter數量

64個

數量限制

-

單個Job中自訂Counter的數量不能超過64,Counter的Group Name和Counter Name中不能帶有井號(#),兩者長度和不能超過100。

Map Instance

[1,100000]

數量限制

odps.stage.mapper.num

單個Job的Map 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 Instance或Reduce Instance失敗重試次數為3,一些不可重試的異常會直接導致作業失敗。

Local Debug模式

Instance個數不超100

數量限制

-

Local Debug模式下:

  • 預設Map Instance個數為2,不能超過100。

  • 預設Reduce Instance個數為1,不能超過100。

  • 預設一路輸入下載記錄數100,不能超過10000。

重複讀取Resource次數

64次

數量限制

-

單個Map Instance或Reduce 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

長度限制

-

MaxCompute表STRING列內容長度不允許超出限制。

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,將無法使用這類作業。