145.4. 分割ストラテジー
現在のバージョンの Hadoop では、ファイルを追加モードで開くことは信頼性が低いため無効になっています。そのため、現時点では、新しいファイルを作成することしかできません。Camel HDFS エンドポイントは、この問題を次の方法で解決しようとします。
- 分割ストラテジーオプションが定義されている場合、hdfs パスがディレクトリーとして使用され、設定された UuidGenerator を使用してファイルが作成されます。
-
分割条件が満たされるたびに、新しいファイルが作成されます。
splitStrategy オプションは、次の構文の文字列として定義されます: splitStrategy=<ST>:<value>,<ST>:<value>,*
ここで <ST> は次のとおりです。
- BYTES 新しいファイルが作成され、書き込まれたバイト数が <value> を超えると古いファイルが閉じられます
- MESSAGES 新しいファイルが作成され、書き込まれたメッセージの数が <value> を超えると古いファイルが閉じられます
- IDLE 新しいファイルが作成され、最後の <value> ミリ秒内に書き込みが発生しなかった場合、古いファイルは閉じられます
この戦略では現在、IDLE 値を設定するか、HdfsConstants.HDFS_CLOSE ヘッダーを false に設定して BYTES/MESSAGES 設定を使用する必要があることに注意してください。それ以外の場合、ファイルはメッセージごとに閉じられます。
以下に例を示します。
hdfs2://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5
つまり、1 秒以上アイドル状態だった場合、または 5 バイト以上が書き込まれた場合に、新しいファイルが作成されます。したがって、hadoop fs -ls/tmp/simple-file
を実行すると、複数のファイルが作成されていることがわかります。