記事のディレクトリ
水路が何であるかを第一に、
1.1定義
水路Clouderaので提供することである高可用性、信頼性の高い分散型巨大なログ収集、凝集および伝送システム。フルームフローベースのアーキテクチャ。
1.2なぜ水路
HDFSの使用は、伝統的にこのように悪いリアルタイムローカルHDFSから送信されたデータを入れているので、リアルタイム監視や水路は、ファイル、フォルダ、またはポートにすることができます。
二、水路原則
チャート2.1
エージェント:
エージェントは、JVMプロセスであり、それはイベントの形でソースから宛先へデータを送信します。
イベント:
イベントは、組成物は<K、V>の形式でデータ伝送水路の基本単位であり、Kはヘッダであり、Vは、本体です。
入れ総務:
doPutメソッド:putListは、バッチデータに書きました
doCommit:合成チャネルメモリキューの妥当性を確認します
doRollbackチャネル:チャネルは、メモリ不足のキュースペース、データのロールバックです
掲げる事項を取ります:
doTake:グラブバッファtakeListにデータを
doCommit:すべてのデータが正常に書き込まれている場合、明確な一時的なバッファtakeList
doRollback:例外が発生した場合、データ送信中に、データバッファメモリのキューにroolbackのtakeListチャネルに返さ
三つのコンポーネント2.2
ソース:
ソースは、コンポーネント水路エージェントのデータを受信するための責任があります。ソースは、以下を含むさまざまな形式でログデータの様々な種類を扱うことができるアブロ、スリフト、Execの、JMS ディレクトリスプール、tailDirのような、netcatをします。
EXEC:Unixのコマンド特定の起動時に実行し、(標準エラー出力のデフォルトはtrueにlogStdErrセットしない限り、出力されません)標準出力にプロセスデータを生成することが望ましいです。
tailDir:リアルタイムのモニタリングデータ、およびドキュメントを通じてたびに位置を達成するための位置は、データを損失することなく機能を読んで
ディレクトリをスプーリング:新しいファイルを追加するかどうかファイルが新しいファイルを識別するために戻って、プラスの接尾辞で、それに追加され、その後、ファイルが変更された場合、これは無視される場合は、フォルダに変更することはできませんので、指定されたフォルダを監視同じファイル名を置きます。
チャネル:
チャネルソースおよびシンクは、データソースは、速度データを書き込むことができるように受信バッファとの間に位置し、ミスマッチの速度は、Channlは、バッファとして追加されます。
チャンネル2種類があり、1はメモリチャネル高速だが、安全、ファイルチャネルは遅いが安全である、1はメモリチャネルで、ファイルチャネルです。
シンク:
シンクは、継続的にポーリングチャンネルのイベントとバルクそれらを削除するには、これらのイベントバルク書き込みは、先に書き込まれます。
シンクは完全なトランザクション。チャンネルバッチからトランザクションを削除する前に、各シンクチャンネルとの取引を開始します。バッチイベントが正常に先に書き込まれた後は、トランザクションがコミットされると、チャンネルの使用上のシンクは、独自の内部バッファからのチャネルの削除イベント、トランザクションを提出します。
2.3水路トポロジ
注:それは混乱になりますので、複数のチャネルを受信シンクがあります。
1、(へ水路ザ水路)(他の基地トポロジー)直列配列:
図2に示すように、対応する数のソースチャネル(この場所は、二つの方法で実現することができ、機構および複数の選択メカニズムのコピー)
図3に示すように、シンクチャンネル(ロードバランシングまたはフェイルオーバー)の複数に対応します:
図4に示すように、ソースは、シンク複数(重合)に対応します:
2.5エージェントの内部原則
三、水路アドバンスト
3.1フェイルオーバー
フリュームフェイルオーバ戦略がある:例えば、チャネルは、これらの開始複数シンク、シンクを接続するようK1などの優先順位になります:10、K2:5、K3:1、開始チャンネルデータを書き込みますK1にk1がダウンしている場合、それはC2年に書き込みます。構成し、フェイルオーバー、引数があったK1とK2の書き込みの過程で再開場合、maxPenalty(デフォルトは30秒です)ですが、もしそれはそれは、30秒後に書き込みに下るK1、K2への書き込みに残って、30秒以内に返事です。
3.2カスタムインターセプタ
3.3カスタムソース
3.4カスタムシンク