現在、エラーは、我々は、クラスタ全体に散らばっ用のB側のソフトウェアを記録し、今では一箇所に集め、その後、下流の操作が消費するために利用できるユニファイド・カフカに投げたいです。
私は同僚がこれを建てていること自身が、彼がした開かれたので、前に詳細をお知りになりたい、水路を考えます。
まず、水路またはクライアントをダウンロードし、そしてここで私は最新バージョンを使用1.9.0
-Oます。httpカール:// mirrorstunatsinghuaeducnapacheflume190apacheflume190bintargz タール zvf-水路-apacheの、190ビン.tar.gzの
、希望のJava環境を設定し、それをカスタマイズするためにパスを書き留め、無Javaの独自次java8
輸出JAVA_HOME =は/ opt / java8の
PATH = $ PATH:$ JAVA_HOME / binに
apacheの-水路-1.9.0-binに/ confに、我々は、対応する構成ファイルテンプレートを見つけることができ、テンプレートは、おそらく長い道のりである1.9.0
#コンフィギュレーション・ファイルは、ソースを定義する必要がある #チャンネルとシンク。 #ソース、チャネル及びシンクは、エージェントごとに定義され、 位この 場合には、「エージェント」と呼ばれる agent.sources = seqGenSrc agent.channels = memoryChannel agent.sinks = loggerSink タイプが定義され、ソースのそれぞれについて# agent.sourcesを。 seqGenSrc.type = SEQ 次のように#チャンネルを定義することができます。 agent.sources.seqGenSrc.channels = memoryChannel #各シンクのタイプが定義されている必要があり agent.sinks.loggerSink.type = ロガー チャネル#Specifyシンクを使用する必要が agent.sinks.loggerSink.channel = memoryChannel #各チャンネルの型が定義されます。 agent.channels.memoryChannel.type = メモリ・ チャネルの各タイプ(シンクまたはソース)に#その他設定値特定 #が良好のように定義することができる 。#はこの 場合には、メモリチャネルの容量を指定 agent.channels.memoryChannel.capacityを = 100
私たちは、CONFのコピーとして動作します
MV水路-conf.properties.template flume-conf.properties
以上のことから、我々は簡単に設定ファイルを見つけることができます
ソース チャンネルとシンク用語は、彼らが発効した設定ファイルの名前を設定する必要があり、個別に定義されており、他の設定の名前に基づきます。
例えば、ここでの私の必要性は、内部情報ファイルを追加することであるイベント用のパッケージを読み出し、保留中のチャンネルを開始し、私はこのタスクを処理するためにTaildirソースを設定することができます。
水路は、私たちのために既製の多くの準備ソースチャンネルとシンクを、彼らはすべての異なる機能は、公式文書の対応バージョンを参照してください。具体的には、使用するために、私たちに直接提供することができます持って、。
ここでは、唯一のTaildirソースの使用についての話します
agent.sources = sensorsInvalidRecordsFile agent.channels = ファイル agent.sinks = kafkaSink #ソースのそれぞれについて、タイプが定義されている agent.sources.sensorsInvalidRecordsFile.type = TAILDIR agent.sources.sensorsInvalidRecordsFile.filegroups = F1 agent.sources.sensorsInvalidRecordsFile .filegroups.f1 = / sa_cluster /ログ/ SP /抽出/ invalid_records agent.sources.sensorsInvalidRecordsFile.headers.f1.fileName = invalid_records agent.sources.sensorsInvalidRecordsFile.headers.f1.logType = sensorsInvalidRecords agent.sources.sensorsInvalidRecordsFile.channels=ファイル
agent.sources.positionFile =〜/ .flume / taildir_position.json
各なぜここに名前のソース・チャネルシンクの構成を明確にするために最初の3行。ここで我々は、同時に複数のソースを宣言し、空間分割に続く行に設定する必要のあることを意味し、すべてのコンポーネントが複雑な名前が付けられていることに気づくことができます
agent.sources = S1、S2、S3
このような、同時に3つのソースを生成することができます。
ここでは、例の構成を指定し、このインスタンスのプロパティのために初期化されます。
その後、我々はチャンネルを設定し続けています。ここで、データの損失を防ぐために、ディスクがオフになっているイベントソースから抽出されたファイルチャネルを設定します。
#各チャネルのタイプが定義されています。 agent.channels.fileC.type = ファイル agent.channels.fileC.dataDirs =〜/ .flume /ファイル・チャネル/ データ agent.channels.fileC.useDualCheckpoints = 真 agent.channels.fileC.backupCheckpointDir =〜/ .flume /ファイル-channel / backup_checkpoint
最後に、私は、チャネルがデータ内に読み出すことができ、定義、およびシンクの内側に行くカフカ配置する必要があります。私はカフカがシンクシンクと呼ばれる出会いを持つようにビットを探して
私たちは見ることができますし、なぜ、または優先対象比較的良好な生態選択肢抽出ログ水路と組み合わせたApacheのHadoopのは、そのフレンドリーで、生態系の機能を使用する準備ができてボックスの十分なアウトを提供しています。
agent.sinks.kafkaSink.type = org.apache.flume.sink.kafka.KafkaSink agent.sinks.kafkaSink.channel = FILEC agent.sinks.kafkaSink.kafka.bootstrap.servers = 10.171.97.1:9092、10.163.13.219: 9092、10.170.249.122:9092 agent.sinks.kafkaSink.topic =フリュームトピック・センサ- invalid- レコード agent.sinks.kafkaSink.producer.acks = -1 agent.sinks.kafkaSink.producer.compression.type =てきぱき
カフカクラスタ構成情報は上がるだろう。
あなたが正常に送信できるかどうかを見上げるようカフカ・マネージャーツールをターゲットに行きます!
これまでのところ、私たちは目標に達しています。気持ちはあなたが仕事を設定することができた構成だけで何になる、非常に簡単です、あなたは、カスタマイズ作業の水路もETL後に再送信または変更し、データの読み取りとするいくつかのフックの使用をサポートする必要があります。それは非常に柔軟です。私はそれを再生するために同様のニーズが発生していた希望します。
参照:
https://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html水路user_guide
Apacheの水路スタートチュートリアルをhttps://juejin.im/post/5be4e549f265da61441f8dbe
水路https://www.mtyun.com/library/how-to-install-flume-on-centos7はCentOS7に取り付けられました