マッピングまたはマッピングタスクのトラブルシューティング
- Javaヒープ領域エラーが発生してマッピングが失敗する
- Microsoft Azure Data Lake Storage Gen1で、フラットファイル、バイナリファイル、Avroファイル、またはParquetファイルに対して読み取りまたは書き込みを行うと、特定のマッピングが次のエラーで失敗する場合があります。
- [ERROR] java.lang.OutOfMemoryError: Java heap space
- マッピングを正常に実行するには、処理するデータに基づいてヒープサイズを増やす必要があります。
- AvroファイルとParquetファイルの推奨ヒープサイズは1 GBです。
- 次の表に、フラットファイルとバイナリファイルの推奨ヒープサイズを示します。
ファイルサイズ | 最大ヒープサイズ |
---|
20 GBまで | 256 MB |
21 GB~40 GB | 512 MB |
40 GB以上 | 1024 MB |
- 以下の手順を実行してSecure AgentのJVMオプションを設定し、Javaヒープサイズを増やします。
- 1. [Administrator] > [ランタイム環境]を選択します。
- 2. [ランタイム環境]ページで、利用可能なSecure Agentのリストからメモリを増加するSecure Agentを選択します。
- 3. 右上隅の[編集]をクリックします。
- 4. [システム構成の詳細]セクションで、サービスとして[データ統合サーバー]を選択し、タイプとして[DTM]を選択します。
- 5. [JVMOption]プロパティを編集し、「-Xmx1024m」と入力します。
注: 処理するデータに基づいて、ヒープサイズを設定することができます。
- 6. [保存]をクリックします。
- JSONファイルを書き込むと、Javaヒープ領域エラーが発生してマッピングタスクが失敗します。
- サイズが1 GB以上のJSONファイルを書き込むと、Javaヒープ領域エラーが発生してタスクが失敗します。
- タイプDTMのJVMオプションを設定して、Secure Agentのシステム構成の詳細で-Xmsおよび-Xmxの値を増やします。
- [実行時に新規作成]オプションを使用してAvroファイルを書き込むと、スキーマはNULL値を含めるオプションを持たないプリミティブデータ型を使用して作成されます。
- スキーマを手動で編集し、必要に応じてNULL値を許可する必要があります。以下に例を示します。
- {"type":"record","name":"Azure_Avro_CT_N","fields":[
{ "name":"c_custkey" , "type":["int","null"]},
{ "name":"c_name" , "type":"string"}
{"name":"c_address" , "type":"string"},
{ "name":"c_nationkey" , "type":["long","null"]}
- マッピングが失敗するたびに、同じエラーメッセージが表示されます。
- エラーメッセージはセッションログで確認できます。