Hadoop連携機能では、Reduceアプリケーションへの入力レコードが0件である場合、ユーザーが指定したReduceアプリケーションは復帰値を返却しません。このプロパティを有効にした場合、Reduceアプリケーションへの入力レコードが0件である場合でもReduceアプリケーションは復帰値をHadoopジョブの復帰値として返却します。
設定内容 | 設定名 | 設定値 | 備考 |
---|---|---|---|
Reduceアプリケーションの復帰値返却 | extjoiner.reduce.alwaysReturnExitcode |
Reduceアプリケーションの復帰値をHadoopジョブの復帰値として返却します。
Reduceアプリケーションの復帰値は返却されません。 | 省略可 デフォルトはfalseです。 |
注意
このオプションが有効の場合
HadoopのログではタスクIDが000000のMapタスクがReduceタスク数分のレコードを余分に渡したかのように表示されます。また、extjoiner.map.output.getRecordCount オプションでも同様にMapタスク(ID=000000)がReduceタスク数分のレコードを余分に渡したかのように表示されます。
HadoopのログではReduceタスクに1件のレコードが余分に渡されたかのように表示されます。また、extjoiner.reduce.input.getRecordCount オプションでも同様に1件のレコードが余分に渡されたかのように表示されますが、Reduceアプリケーションにこのレコードが渡されることはありません。
このオプションが有効で、かつHadoop入力データファイルが0byteの場合
ジョブ実行中にHadoopファイルシステム上に一時ファイルが作成されます。一時ファイルは、ジョブ実行ユーザのHadoopファイルシステムホームディレクトリ直下のextjoiner_dummyディレクトリ内に生成されます。一時ファイルを削除する必要がある場合、上記ディレクトリを手動で削除してください。(ジョブ開始時に既に一時ファイルが存在していても、ジョブの実行に影響はありません) 作成される一時ファイルのサイズは、最大で64バイトです。
HadoopのログではMapタスクに1件のレコードが渡されたかのように表示されます。また、extjoiner.map.input.getRecordCount オプションでも同様にMapタスクに1件のレコードが渡されたかのように表示されますが、Mapアプリケーションにレコードが渡されることはありません。