本文介紹JindoSDK訪問(wèn)OSS出現(xiàn)InvalidArgument Part number問(wèn)題的原因和解決方法。
問(wèn)題詳情
ErrorMessage : [RequestId]: 62DC30C7F31FA339346B57B2 [HostId]: oss-cn-beijing-internal.aliyuncs.com [ErrorMessage]: [E1010]HTTP/1.1 400 Bad Request: InvalidArgument Part number must be an integer between 1 and 10000, inclusive. 62DC30C7F31FA339346B57B2 xxx.oss-cn-beijing-internal.aliyuncs.com PartNumber 10001 ERROR_CODE : 1010問(wèn)題原因
分塊(Part)數(shù)量超出支持范圍。JindoSDK默認(rèn)使用MultiPartUpload方式上傳文件到OSS,OSS最多支持10000個(gè)Part。
解決方法
- JindoSDK/JindoData 4.3.0版本(EMR-3.40.0或EMR-5.6.0版本集群)JindoMagicCommitter存在缺陷,導(dǎo)致Part使用過(guò)快。您可以選擇以下任意一種方式進(jìn)行以下修復(fù):
- 切換為Hadoop原生的JobCommitter。
- 升級(jí)至JindoSDK 4.3.x及以上版本,詳情請(qǐng)參見(jiàn)EMR集群JindoSDK升級(jí)流程(新版控制臺(tái))。
- 目前JindoSDK默認(rèn)最大支持80 GB文件寫(xiě)入。一般情況Spark或Hive作業(yè)不會(huì)寫(xiě)入超過(guò)80 G的文件,可能是作業(yè)出現(xiàn)數(shù)據(jù)傾斜導(dǎo)致文件超大,建議您進(jìn)行作業(yè)調(diào)參或優(yōu)化規(guī)避數(shù)據(jù)傾斜問(wèn)題。
- JindoSDK 4.5.2 (EMR-3.43.1或EMR-5.9.1) 及以上版本支持配置fs.oss.blocklet.size.mb進(jìn)行調(diào)整,默認(rèn)為8。由于Part最多為10000個(gè),因此寫(xiě)入文件不能超過(guò)80 GB。如果有個(gè)別文件超過(guò)80 GB,建議根據(jù)文件大小單獨(dú)調(diào)大本配置,并同時(shí)調(diào)大請(qǐng)求OSS的超時(shí)時(shí)間。如文件大小未知或遠(yuǎn)大于80 GB(例如,超過(guò)160 GB),建議考慮使用OSS-HDFS(無(wú)文件大小限制)。