3

pigを使用した分析のために、アプリケーションログを定期的に(1時間ごとに)Cassandraにロードしたいと思います。

これは通常どのように行われますか?これに焦点を当てたプロジェクトはありますか?

ムマキルはデータの一括読み込みによく使われているようです。それを中心に構築されたcronジョブを作成することはできましたが、私が作成するジョブよりも堅牢なものを望んでいました。

また、必要に応じて、アプリケーションを変更して、データを別の形式(syslogやCassandraに直接保存するなど)で保存することもできます。その場合、Cassandraが利用できなくなった場合のデータ損失が心配になりますが。

4

2 に答える 2

1

Flumeを使用するように設定されている場合は、カスタムのFlumeシンクを作成する必要があります(ハードではありません)。https://github.com/geminitech/logprocessingでモデル化できます。

Pigを使用したい場合は、HDFS(またはS3)を使用する必要があるという他のポスターに同意します。Hadoopは、ブロックが巨大なブロックストレージで非常にうまく機能するように設計されています。これにより、大量のディスクシークやネットワークIOを実行することで得られるひどいIOパフォーマンスを防ぐことができます。PigをCassandraで使用することはできますが、Cassandraデータモデルで問題が発生し、パフォーマンスが大幅に低下します。

ただし、本当にCassandraを使用したいが、Flumeに夢中になっていない場合は、KafkaとStormを使用することをお勧めします。

Stormを使用してログファイルをCassandraにロードするための私のワークフローは次のとおりです。

  1. Kafkaはログを収集します(たとえば、log4jアペンダーを使用)
  2. ログは、storm-kafkaを使用してストームクラスターに入ります
  3. ログラインは解析され、カスタムストームボルトを使用してカサンドラに挿入されます(ストームボルトの作成は非常に簡単です)。ストームカサンドラボルトもすでに入手可能です。
于 2012-06-22T20:38:51.713 に答える
0

これらのプロジェクトはこの目的のために設計されているため、Flumeを使用してHDFSにロードすることを検討する必要があります。その後、非構造化/半構造化ログデータに対してPigを直接使用できます。

于 2012-05-27T13:40:28.750 に答える