2016-05-15 10 views
0

ログファイルのデータを処理する必要があります。それは比較的簡単です。私は2つのWebアプリケーションがそれぞれ8つのログファイルを実行している4つのサーバーを持っています。これらは定期的に回転します。 ; 39048039; 930483; 3940830ログファイルの処理:Apache StormまたはSpark

番号は、データストアに識別子です

9340398:私は、これらのログファイルに次の形式で

ソースタイムスタンプをデータを書いています。私は、これらのログを読み込むプロセスを設定したいと思っています。それぞれのIDに対して、そのIDが記録された回数に応じてカウントを更新します。それはリアルタイムまたはバッチのいずれかです。私のデータストアへのインターフェイス言語はJavaです。このプロセスは本番環境で実行されるため、堅牢である必要がありますが、比較的シンプルなアーキテクチャーが必要なため、保守が必要です。私たちはまた、動物園を経営しています。

私の初期の考えは、ログファイルが回転されて各サーバー上でApacheスパークが実行されているときに、これを一括して実行することでした。しかし、私はその後、Apache Flume、Kafka、Stormなどのログアグレゲーターを見ていましたが、これは過度のようです。

経験に基づいてこの問題を処理するためにどのツールを使用するのか、誰にでも良い提案がありますか?

+0

おそらく[logstash](https://www.elastic.co/products/logstash)のようなソリューションが使えますか?一般的に、これらの種類の質問はSOに関連していません。 –

+0

こんにちは、私はLogstashを見て、タイプ操作をフィルタリングする方がより重視されていました。私はこの質問がSO憲章には適していないことに同意します。 –

答えて

1

8ログファイルは、「大きなデータ」テクノロジを保証するようではありません。これらのタイプの技術を使ってプレイ/スタートしたいのであれば、SparkやFlinkで始めることをお勧めします。どちらも比較的似通ったプログラミングモデルを持っています。両方とも「ビジネスリアルタイム」を処理できます(Flinkはストリーミングはどちらもあなたのケースではうまくいくようです)。ストームは比較的硬く(トポロジーを変更するのが難しい)、より複雑なプログラミングモデルを持っています

+0

私はそれが "大きなデータ"の問題ではないことに同意する傾向があります。小規模なデータ問題に対しても堅牢な方法でログの集約と処理の問題に対処するための合理的に簡単なツールが必要であることが私にはたまたまありました。私は、データソースがダイバーアプリケーションからの更新を処理できるので、ログ集約も必要ないかもしれません。したがって、ログファイルの末尾に何かか、またはバッチ処理を行うことが解決策になるかもしれません。 –

+2

ELKまたはFluentdを検討しましたか?純粋なJAVAが必要な場合、Flumeは別のものかもしれませんが、信頼できるテールはありません。ネイティブテールは1.7リリースで利用可能かもしれませんが、いつ確実かはわかりません。非常にシンプルなlogstashまたはfilebeatsを設定して、Elasticに転送して、簡単な集計を行うことをお勧めします。 – YaRiK

+0

私はELKを見ましたが、あなたが言ったことを考えれば、もう一度見てもよいでしょう。 –

関連する問題