1

最近、flume を使用していくつかの試みを行いました。主に、フロント エンド サーバーからバック エンド サーバーにデータをストリーミングして処理します。これは、ローカルの「ログ」ファイルを作成し、flume でそれらを追跡することによって行われました。問題は、flume ノードを再起動すると、ディレクトリ内のすべてのファイルが再送信されることでした。これを効果的に管理する方法はありますか?Flume がファイルの処理を終了したというイベントを発生させることはできますか? チェックポイントが組み込まれていますか?

そうでない場合、そのようなことを行うためのアプローチは何でしょうか?

4

1 に答える 1

0

flumeノードを再起動するたびに、tailsourceはそれがテーリングしているファイルの先頭から開始します。Flumeはまだこの問題を箱から出して解決していません。自分で管理するような状態を実装する必要があります。

簡単に説明すると、別のスレッドを実行して、tailsourceがファイルに対してテーリングしているバイトを基本的にリッスンし、そのbytes_readをどこかに永続化することができます。水路エージェントがクラッシュまたは再起動した場合は、永続化した場所(tmpフォルダー内のファイルなど)からそのbytes_readを読み取るだけです。ただし、何らかの方法でtailsourceコンストラクターをラップする必要があります。水路自体からの修正を待っている間、それは厄介な方法で問題を解決します:(

于 2012-05-03T15:01:23.587 に答える