本文為您介紹任務啟動失敗時的報錯資訊及解決方案。
無法載入主類
- 報錯資訊
錯誤:找不到或無法載入主類 com.alibaba.proxima.CentauriRunner. - 解決方案
該問題主要原因是MaxCompute無法載入Proxima CE的可執行JAR包,可以通過申請連結或搜尋(DingTalk群號:11782920)加入MaxCompute開發人員社區釘群聯絡MaxCompute支援人員團隊擷取支援。
分隔字元指定有誤
- 報錯資訊
FAILED: ODPS-0123131:User defined function exception - Traceback: ProximaCEException(code=20003, msg=參數校正異常, detailMsg=資料向量維度[=1]和config配置的向量維度[=128]不一致,) at com.alibaba.proxima.utils.VectorConvert.convert(VectorConvert.java:17) at com.alibaba.proxima.mr.BuildMapper.map(BuildMapper.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.aliyun.MaxCompute.mapred.bridge.utils.MapReduceUtils.runMapper(MapReduceUtils.java:120) at com.aliyun.MaxCompute.mapred.bridge.LotMapperUDTF.run(LotMapperUDTF.java:807) at com.aliyun.MaxCompute.udf.impl.batch.BatchStandaloneUDTFEvaluator.run(BatchStandaloneUDTFEvaluator.java:53) - 解決方案使用-vector_separator命令列參數指定正確的分隔字元,預設是波浪號(
~),詳情請參見選擇性參數。說明 分隔字元不能帶單引號或雙引號,使用字元本身即可。例如','會被識別為字串','而不是分隔字元,。
使用者資源群組JDK設定錯誤
- 報錯資訊

- 解決方案
MaxCompute建立任務,調度配置有多個網關資源群組 ,一般有一個預設的資源群組,需要JDK為1.8及以上版本,出現上述報錯的主要原因可能是JDK版本過低,手動更換一個資源群組即可。
找不到工程的Volume
- 報錯資訊
MaxCompute-0010000: System internal error - Lost volume dir
- 解決方案這種情況可能是對應的Volume目錄存在,但是目錄被損壞了,可嘗試通過手動刪除對應的目錄重新執行。具體ODPS SQL命令如下:
vfs -ls /; --該命令會輸出首碼為'proxima_v2/xxx'的目錄 vfs -rm -r -f /proxima_v2/xxx; --刪除該目錄(與runLog裡面列印的Volume目錄一致)。與下述命令二選一 vfs -rmv /proxima_v2; --刪除整個Volume。與上述命令二選一
報錯 exceeds the allowed maximum length of '2097152'.
- 報錯資訊
MaxCompute-0420031: Invalid xml in HTTP request body - The request body is malformed or the server version doesn’t match this sdk/client. XML Schema validation failed: Element 'Value': [facet 'maxLength'] The value has a length of '7238452'; this exceeds the allowed maximum length of '2097152'. - 該問題的原因之一是使用者在設定啟動參數-classpath時出現問題,請參考運行重新設定正確的-classpath啟動參數後再運行任務。
報錯 java.lang.UnsatisfiedLinkError: no jniproxima in java library.path
- 報錯資訊

- 解決方案
該問題一般是MaxCompute執行個體未成功載入Proxima SDK,可能是該執行個體所在機器太老、環境配置過低的原因導致。這種情況出現的機率較低,通常情況下重跑任務即可,系統會調度到能work的機器執行個體上。