このトピックでは、ジョブの起動失敗に関する一般的なエラーメッセージとその解決策を示します。
メインクラスの読み込み失敗
エラーメッセージ
エラー:メインクラス com.alibaba.proxima.CentauriRunner を見つけられない、または読み込めません。解決策
このエラーは、MaxCompute が Proxima CE の実行可能 JAR パッケージを読み込めないことが原因で発生します。この問題を解決するには、アプリケーションリンク経由で DingTalk の開発者コミュニティ (グループ ID: 11782920) に参加するか、グループ ID を検索して 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 設定エラー
エラーメッセージ
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/alibaba/proxima/CentauriRunner : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) FAILED: Run job failed.解決策
MaxCompute で新しいジョブを作成する際、スケジューリング設定には複数のゲートウェイリソースグループがあり、通常はデフォルトのリソースグループが含まれます。このリソースグループには JDK 1.8 以上が必要です。上記のエラーが発生する主な原因は、JDK のバージョンが低すぎることです。手動でリソースグループを変更してください。
プロジェクトのボリュームが見つからない
エラーメッセージ
[500] com.aliyun.odps.OdpsException: ODPS-0010000: System internal error - Lost volume dir. at com.aliyun.odps.rest.RestClient.handleErrorResponse(RestClient.java:395) at com.aliyun.odps.rest.RestClient.request(RestClient.java:330) at com.aliyun.odps.rest.RestClient.request(RestClient.java:284) at com.aliyun.odps.Volume.reload(Volume.java:113) at com.aliyun.odps.Volumes.exists(Volumes.java:119) at com.aliyun.odps.Volumes.exists(Volumes.java:102) at com.alibaba.proxima.config.ConfigConvert.volumeProcess(ConfigConvert.java:182) at com.alibaba.proxima.config.ConfigConvert.convert(ConfigConvert.java:31) at com.alibaba.proxima.CentauriRunner.main(CentauriRunner.java:236) Caused by: com.aliyun.odps.rest.RestException: RequestId=612862E170BEC3996444586D,Code=InternalServerError,Message=ODPS-0010000: System internal error - Lost volume dir. ... 9 more FAILED: Run job failed.解決策
このエラーは、指定されたボリュームディレクトリが破損している場合に発生する可能性があります。この問題を解決するには、ディレクトリを手動で削除してジョブを再実行してください。次の ODPS SQL コマンドを使用します。
vfs -ls /; --このコマンドは、'proxima_v2/xxx' というプレフィックスを持つディレクトリを出力します vfs -rm -r -f /proxima_v2/xxx; --このディレクトリを削除します (runLog に出力されたボリュームディレクトリと一致)。次のコマンドとどちらか一方を選択してください vfs -rmv /proxima_v2; --ボリューム全体を削除します。上記のコマンドとどちらか一方を選択してください
Error: 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
エラーメッセージ
Can not load proxima core:java.lang.UnsatisfiedLinkError: no jniproxima in java.library.path java.lang.UnsatisfiedLinkError: no jniproxima in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1738) at org.bytedeco.javacpp.Loader.load(Loader.java:1345) at org.bytedeco.javacpp.Loader.load(Loader.java:1157) at org.bytedeco.javacpp.Loader.load(Loader.java:1133) at com.alibaba.proxima2.core.global.proxima.<clinit>(proxima.java:12) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.bytedeco.javacpp.Loader.load(Loader.java:1212) at org.bytedeco.javacpp.Loader.load(Loader.java:1157) at org.bytedeco.javacpp.Loader.load(Loader.java:1133) at com.alibaba.proxima2.core.IndexPluginBroker.<clinit>(IndexPluginBroker.java:16) at com.alibaba.proxima2.ce.utils.ProximaUtil.<clinit>(ProximaUtil.java:24) at com.alibaba.proxima2.ce.utils.ConfigParser.commandLineParserProcess(ConfigParser.java:128) at com.alibaba.proxima2.ce.utils.ConfigParser.parse(ConfigParser.java:36) at com.alibaba.proxima2.ce.ProximaCERunner.main(ProximaCERunner.java:139) Caused by: java.lang.UnsatisfiedLinkError: /home/ads/.javacpp/cache/main_sub0.jar/com/alibaba/proxima2/linux-x86_64/libjniproxima.so: /home/ads/.javacpp/cache/main_su at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1685) ... 14 more ProximaCEException(code=20002, msg=Unauthorized, detailMsg=project:alimama_kgb_algo appId:200696 is not authorized, please contact the developer.) at com.alibaba.proxima2.ce.utils.CheckSignUtil.checkSign(CheckSignUtil.java:39) at com.alibaba.proxima2.ce.utils.ConfigParser.checkSign(ConfigParser.java:452) at com.alibaba.proxima2.ce.utils.ConfigParser.parse(ConfigParser.java:38) at com.alibaba.proxima2.ce.ProximaCERunner.main(ProximaCERunner.java:139) ProximaCEException(code=20002, msg=Unauthorized, detailMsg=Authorization check failed, please contact the developer.) at com.alibaba.proxima2.ce.utils.ConfigParser.checkSign(ConfigParser.java:455) at com.alibaba.proxima2.ce.utils.ConfigParser.parse(ConfigParser.java:38) at com.alibaba.proxima2.ce.ProximaCERunner.main(ProximaCERunner.java:139) FAILED: Run job failed.解決策
この問題は通常、MaxCompute インスタンスが Proxima SDK を正常に読み込めないことが原因で発生します。インスタンスが動作しているマシンが古すぎる、または環境設定が低すぎることが原因の可能性があります。この状況が発生する確率は低く、通常はジョブを再実行することで解決します。システムによって、正常に動作するマシンインスタンスにスケジューリングされます。