マッピングまたはマッピングタスクのトラブルシューティング
- [ERROR] Exception: java.io.IOException: Too many open files
- Linuxマシンでマッピングを実行して大きなファイルを読み取りを行うと、マッピングが失敗し、次のエラーが発生する場合があります。
- [ERROR] Exception: java.io.IOException: Too many open files
- この問題を解決するには、次の手順を実行します。
- 1カーネルレベルで適用される最大のファイル記述子であるfile-maxの値を増やします。
ファイル記述子の設定を変更するには、カーネルパラメータファイル/etc/sysctl.confを編集して、fs.file-max=[new value]を追加します。
以下に例を示します。
# vi /etc/sysctl.conf
fs.file-max = 400000
- 2ulimitを設定します。ulimitはfile-max未満の値である必要があります。
ulimitの設定を変更するには、ファイル/etc/security/limits.confを編集して、ハード制限とソフト制限を設定します。
以下に例を示します。
# vi /etc/security/limits.conf
* soft nofile 40000
* hard nofile 40000
- 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"]}
- マッピングが失敗するたびに、同じエラーメッセージが表示されます。
- エラーメッセージはセッションログで確認できます。