このトピックでは、SDK for Javaに関するよくある質問に対する回答を提供します。
カテゴリ | よくある質問 |
SDK | |
エラー |
MaxCompute SDK for Javaパッケージをダウンロードするにはどうすればよいですか?
MavenからMaxCompute SDK for Javaパッケージをダウンロードします。
たとえば、MapReduce SDK For Javaパッケージをダウンロードする場合は、Mavenでodps-sdk-mapredを検索し、[バージョン] タブのSDKバージョンの
をクリックしてMapReduce SDK for Javaパッケージをダウンロードできます。
MaxCompute SDK For Javaパッケージの詳細については、「SDK for Java」をご参照ください。
MaxCompute SDK for Javaを使用してSQLフラグを設定するにはどうすればよいですか?
ほとんどの場合、DataWorksコンソールまたはMaxComputeクライアント (odpscmd) でSQL文を送信するときに、SQLフラグを設定する必要があります。 たとえば、MaxCompute V2.0データ型エディションを使用する必要がある場合は、sql文の前にset odps. SQL. type.system.odps2=true; を追加して、セッションレベルでMaxCompute V2.0データ型エディションを有効にできます。
MaxCompute SDK for Javaを使用してSQL文を送信する場合、同じ方法でSQLフラグを設定することはできません。 SQLフラグを設定するには、次の方法を使用します。
-- Create an SQLTask object.
SQLTask task = new SQLTask();task.setName("foobar");task.setQuery("select ...");
-- Set the flag.
Map settings = new HashMap<>();settings.put("odps.sql.type.system.odps2", "true");...
-- Set other flags.
task.setProperty("settings", new JSONObject(settings).toString()); -- This is the key configuration. Set the settings properties to the JSON strings that correspond to the flags.
-- Execute the SQL statement.
Instance instance = odps.instances().create(task);SDK for Javaに関連するエラーのトラブルシューティングにLogViewを使用する方法を教えてください。
MaxCompute SDK for Javaが提供するLogViewインターフェイスi = SQLTask.ru n(odps, sql); String logview = odps.logview().generateLogView(i, 7 × 24) を使用します。
MaxComputeに統合されているJavaビジネスコードでSQLジョブを実行するにはどうすればよいですか?
JavaコードでMaxCompute SDK for Javaを呼び出して、SQLジョブを実行します。 詳細については、「SDK For Java」をご参照ください。
SQLTaskを使用してSQLステートメントを実行するときに、クエリ結果に10,000を超えるレコードが含まれている場合、すべてのデータを取得するにはどうすればよいですか。
結果セットをテーブルに書き込み、Tunnelコマンドを使用してテーブルデータをダウンロードします。
SQLTaskで次の方法で返される結果セットのデータレコード数が制限されていますか。 結果セットで返すことができるデータレコードの最大数は何ですか?
例:
Instance instance = SQLTask.run (odps, "SQL statement");
instance.waitForSuccess();
List<Record> records = SQLTask.getResult(instance); 結果セットで返されるデータレコードの最大数は10,000です。 大量のデータが返される場合は、Tunnel SDKを使用してデータをエクスポートすることを推奨します。
SQLTaskとDownloadSessionの用途と機能の違いは何ですか?
SQLTaskはSQL文を実行し、結果を返します。 返される結果の数は限られています。 デフォルトでは、最大10,000件の結果が返されます。
DownloadSessionは、既存のテーブルのデータをダウンロードするために使用されます。 返される結果の数に上限はありません。
MaxCompute SDK for Javaを使用してジョブを実行するときに、実行プロセスに長時間がかかる場合はどうすればよいですか。
問題の説明
ユーザーAがMaxCompute SDK for Javaを使用してジョブを実行する場合、実行プロセスに時間がかかり、ユーザーaはLogViewからジョブ情報を取得できません。
ユーザーBがMaxCompute SDK for Javaを使用してテーブルにアクセスし、RestClientの再試行操作を実行すると、実行プロセスに時間がかかります。
原因
ユーザーAはインスタンスのLogView URLを取得しません。 その結果、システムはインスタンスの実行プロセスを追跡できません。 インスタンスを作成すると、
instance.waitForSuccess()メソッドが呼び出されます。 ジョブの実行に長時間を要する場合には、システムの応答にも長時間を要する。 LogViewにジョブ情報が表示されている場合は、ジョブ情報を表示して、この問題の原因を特定できます。実行プロセスに時間がかかり、ユーザーBはLogViewからジョブ情報を取得しません。 SDK for JavaのRestClientは、再試行メカニズムを提供します。 システムが再試行を実行するたびにシステムがエラーログを返す場合、問題をすばやく見つけることができます。
解決策
MaxCompute SDK for Javaを使用して、インスタンスのLogView URLを生成します。
MaxCompute SDK for Javaは、LogViewインターフェイスを提供します。 詳細については、「インスタンスLogView」をご参照ください。
説明MaxCompute SDK for Javaを使用する場合は、各インスタンスのLogView URLを取得します。 これにより、エラーが発生した場合に問題をすばやく見つけることができます。
MaxComputeクライアント (odpscmd) で
WAIT<instance_id>コマンドを実行し、LogView URLを取得します。
システムは、RestClientの再試行操作を実行するたびにエラーログを返します。
MaxCompute SDK for Javaは、抽象クラスRetryLoggerを提供します。 詳細は、「エラーログの返却」をご参照ください。
MaxComputeでコードを実行するときにエラーメッセージ "java.lang.ClassNotFoundException" が表示された場合はどうすればよいですか?
パッケージをインポートするとき、パッケージに関連する依存関係はインポートしないか、パッケージを繰り返しインポートします。 オンプレミス環境の設定をトラブルシューティングします。
MaxComputeでMapReduceジョブを実行するときにエラーが発生した場合は、-resourcesパラメーターを使用して必要な依存関係がインポートされているかどうかを確認します。
MaxComputeでコードを実行するときに「OpenJDK 64-Bit Server VM warning」というエラーメッセージが表示された場合はどうすればよいですか?
問題の説明
次のエラーメッセージが表示されます。
OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory原因
一時ファイルの格納に使用するディレクトリの空き容量が不足しています。
解決策:
dfコマンドを使用して、一時ファイルの格納に使用するディレクトリの格納領域を表示します。 次に、ストレージスペースをクリアします。