私の会社では、かなり大量のログ処理に Flume を使用することを検討しています。ボリューム (スケーラビリティ) とフェイルオーバー (信頼性) の両方の理由から、ログ処理を分散する必要があると考えており、Flume は当然の選択のようです。
ただし、Flume が自動スケーラビリティーとフェイルオーバーを提供する方法がわからないため、明らかな何かが欠けているに違いないと考えています。
各ログ行に対して、A を実行し、次にそれを渡して B を実行し、次にそれを渡して C を実行するというフローを定義したいと考えています。これは Flume とよく一致しているようです。しかし、私はこのフローを純粋に論理的な用語で定義できるようにしたいと考えており、基本的には「フルームさん、ここにサーバーがあります。ここにフローの定義があります。仕事に行きましょう!」と言うことができます。サーバーが停止し (ops がサーバーを再起動します)、サーバーをクラスターに追加し、他のサーバーを廃止します。flume は、使用可能な容量があるノードに作業を転送します。
この説明は、Hadoop の map-reduce がスケーラビリティとフェイルオーバーを実装する方法であり、Flume も同じであると想定しました。ただし、ドキュメントには、各論理ノードが実行される物理サーバーを手動で構成し、各ノードに特定のフェイルオーバー シナリオを構成する必要があることが示されています。
その通りです。Flume は私たちの目的を果たせていませんか、それとも何か見逃していましたか?
ご協力いただきありがとうございます。