Red Hat Training

A Red Hat training course is available for Red Hat Fuse

136.3. 分割ストラテジー

現在のバージョンの 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 を実行すると、複数のファイルが作成されていることがわかります。