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