2016-10-04 3 views
1

何らかのソースからデータのストリームを読み込む必要があります(私の場合はUDPストリームですが、それは問題ではありません)、各レコードを変換してHDFSに書き込みます。Apache FlumeとApache Flinkの相違点

FlumeまたはFlinkこの用途には違いがありますか?

カスタムインターセプターでFlumeを使用して、各イベントを変換することができます。

しかし、私はFlinkで新しくなっています。私にとっては、Flinkは同じように見えます。

どちらを選ぶのがよいですか?パフォーマンスに違いはありますか?

お願いします。

答えて

0

免責事項:私はApache FlinkのコミッタとPMCのメンバーです。私はApache Flumeについての詳細な知識は持っていません。

さまざまなソースからHDFSにストリーミングデータを移動することは、私が知る限り、Apache Flumeの主な使用例の1つです。これは特殊なツールであり、関連する機能が多数組み込まれていると想定します。Flumeのパフォーマンスについてはコメントできません。

Apache Flinkは、Flumeよりも一般的で豊富な機能(たとえば、イベント時、進歩的なウィンドウ処理、高水準API、フォールトトレラントおよびステートフルアプリケーションなど)のためのプラットフォームです。ストリーミング分析とCEPを含むFlinkで、さまざまな種類のストリーム処理アプリケーションを実装して実行できます。

Flinkには、HDFSファイルにデータストリームを書き込むためのローリングファイルシンクがあり、ユーザー定義関数を使用してあらゆる種類のカスタム動作を実装できます。しかし、HDFSへのデータ摂取のための特別なツールではありません。このユースケースには多くの組み込み機能が期待されません。 Flinkは非常に優れたスループットと低いレイテンシを提供します。

単純なレコードレベルの変換以上のものを必要としない場合は、まずFlumeでユースケースを解決しようとします。 Flumeには、Flinkを選択する際に自分で実装する必要がある機能がいくつか付属しています。将来、より高度なストリーム処理を行うことを期待している場合、Flinkは一見価値があります。

0

免責事項:私はApache Flumeのコミッタです。私はApache Flinkについて詳しい知識は持っていません。

あなたが説明したユースケースについては、Flumeが正しい選択である可能性があります。

netcat UDP sourceがコードベースにコミットするまで使用できます。

変換については、提案するのは難しいですが、Morphline Interceptorをご覧ください。

ソースがUDPの場合、無視できるデータ損失が許容されるはずですので、チャネルに関してはMemory Channelをお勧めします。

シンクワイズHDFS Sinkはおそらくあなたのニーズをカバーします。

関連する問題