2012-04-19 7 views
1

最近flumeの使用をいくつか試みました。主にフロントエンドサーバーからバックエンドサーバーにデータをストリームして処理されます。ローカルの 'log'ファイルを作成し、flume tailを持っていました。 問題は、flumeノードを再起動すると、ディレクトリ内のすべてのファイルが再送信されたことです。これを効果的に管理する方法はありますか? flumeはファイルの処理を終了したというイベントを出しますか?チェックポイントを組み込んでいますか?flumeはテールを使用して同じ場所から続きます。

もしそうでなければ、そのようなことをするアプローチは何でしょうか?

答えて

0

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

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

関連する問題