個人財務 HDFSのFlumeを使用したデータのダミー -

HDFSのFlumeを使用したデータのダミー -

ビデオ: 07 Streaming Analytics - Flume - Web Server logs to HDFS - Customize Sink 2025

ビデオ: 07 Streaming Analytics - Flume - Web Server logs to HDFS - Customize Sink 2025
Anonim

Hadoop分散ファイルシステム(HDFS)で終わるデータの一部は、データベースのロード操作や他の種類のバッチ処理によってそこに着陸することがありますが、アプリケーションログデータなど、ハイスループットのデータストリームに流れるデータをキャプチャする場合は、 Apache Flumeは、これを簡単に、効率的に、安全に行うための標準的な方法です。

Apache Flume はApache Software Foundationの別のトップレベルプロジェクトで、大量のストリーミングデータを集約してさまざまなソースから集中データストアに移動するための分散システムです。

<!別の言い方をすれば、FlumeはHDFSへのデータの連続的な取り込みのために設計されています。データはどのような種類のデータでもかまいませんが、FlumeはWebサーバーからのログデータなど、ログデータを処理するのに特に適しています。 Flumeが処理するデータの単位は、

events と呼ばれます。イベントの例はログ・レコードです。 FlumeがHadoopクラスタ内でどのように動作するかを理解するには、Flumeが1つ以上のエージェントとして動作し、各エージェントに3つのプラグイン可能なコンポーネント(ソース、チャネル、およびシンク)があることを知る必要があります。 - 2 - >

ソース

はデータを検索し、チャネルに送信します。チャネル999は、データ待ち行列を保持し、ソースとシンクとの間の導管として機能し、流入流量が流出流量を超える場合に有用である。
  • Sinks は、チャンネルから取り込まれたデータを処理し、HDFSなどの目的地に配信します。

  • <! - 3 - > エージェントには、実行する各コンポーネントの少なくとも1つが必要であり、各エージェントはJava Virtual Machine(JVM)の独自のインスタンスに含まれています。ソースによってチャネルに書き込まれたイベントは、シンクがトランザクションによってそれを除去するまで、そのチャネルから除去されない。ネットワーク障害が発生した場合、チャネルは、シンクがそれらをクラスタに書き込むことができるまで、イベントをキューに入れます。メモリ内チャネルはイベントをすばやく処理できますが、揮発性で回復できませんが、ファイルベースのチャネルは永続性を提供し、障害が発生した場合に回復できます。各エージェントは複数のソース、チャネル、およびシンクを有することができ、ソースは多くのチャネルに書き込むことができるが、シンクは1つのチャネルのみからデータを取り込むことができる。

  • エージェントはFlumeを実行しているJVMだけであり、Hadoopクラスタの各 エージェントノード

のシンクは、

コレクタノード

にデータを送信します。それを他のHadoopツールで解析できるHDFSに書き込む。

あるエージェントからのシンクが別のエージェントからソースにデータを送信するように、エージェントを連鎖させることができます。Apacheのリモート呼び出しおよびシリアライゼーションフレームワークであるAvroは、データをコンパクトなバイナリ形式に効率的にシリアル化または変換するための便利なツールとして機能するため、Flumeを使用してネットワーク経由でデータを送信する通常の方法です。

Flumeのコンテキストでは、互換性が重要です。たとえば、AvroイベントにはAvroソースが必要であり、シンクは目的地に適したイベントを配信する必要があります。 このソース、チャネル、およびシンクの大きな連鎖を作るのはFlumeエージェントの設定です。これはJavaプロパティファイルのように構造化されたローカルテキストファイルに格納されています。複数のエージェントを同じファイルに設定できます。 flume-agentというサンプルファイルを見てください。 conf - shamanというエージェントを設定するように設定されています: #エージェントshaman:shamanのコンポーネントを特定します。 sources = netcat_s1 shaman。シンク= hdfs_w1シャーマン。 channels = in-mem_c1#ソースを設定する:シャーマン。ソース。 netcat_s1。タイプ=ネットキャットシャーマン。ソース。 netcat_s1。 bind = localhostシャーマン。ソース。 netcat_s1。ポート= 44444#シンクを描く:シャーマン。シンク。 hdfs_w1。タイプ= hdfsシャーマン。シンク。 hdfs_w1。 hdfs。パス= hdfs://シャーマン。シンク。 hdfs_w1。 hdfs。 writeFormat =テキストシャーマン。シンク。 hdfs_w1。 hdfs。 fileType = DataStream#シャーマン:メモリ内のイベントをバッファリングするチャネルを設定します。チャネル。 in-mem_c1。タイプ=メモリシャーマン。チャネル。 in-mem_c1。能力= 20000シャーマン。チャネル。 in-mem_c1。 transactionCapacity = 100#ソースとシンクをチャネルshamanにバインドします。ソース。 netcat_s1。 channels = in-mem_c1シャーマン。シンク。 hdfs_w1。 channels = in-mem_c1 構成ファイルには、エージェント内の各ソース、チャネル、およびシンクのプロパティーと、それらの接続方法が指定されています。この例では、エージェントshamanは、ポート44444のデータ(netcatへのメッセージ)、メモリ内のイベントデータをバッファするチャネル、およびイベントデータをコンソールに記録するシンクを受信するソースを持っています。 この設定ファイルは、複数のエージェントを定義するために使用されている可能性があります。ここでは、物事を単純に保つために1つだけを設定しています。

エージェントを起動するには、flume-ngというシェルスクリプトを使用します。これはFlume配布のbinディレクトリにあります。コマンドラインから、エージェントコマンドを発行し、構成ファイルへのパスとエージェント名を指定します。

次のサンプルコマンドは、Flumeエージェントを起動します。

flume-ngエージェント-f / -n shaman

Flumeエージェントのログには、ソース、チャネル、およびシンクが正常に開始したことを示すエントリが含まれている必要があります。

設定をさらにテストするには、別の端末からポート44444にtelnetで接続し、任意のテキスト文字列を入力してFlumeにイベントを送信します。すべてがうまくいけば、オリジナルのFlume端末は、エージェントのログに表示されるはずのログメッセージにイベントを出力します。

HDFSのFlumeを使用したデータのダミー -

エディタの選択

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

Objective-Cでは、作成していないクラスであっても、iOSアプリケーションの既存のクラスに独自のメソッドを追加できます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション...

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーションの開発では、Objective-Cを使用すると、自分が作成していないクラスであっても、既存のクラスに独自のメソッドを追加することができます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション(たとえば、...

In App Purchase機能がiPadアプリで動作する仕組み

In App Purchase機能がiPadアプリで動作する仕組み

Apple App App Purchase機能を提供します。これにより、アプリユーザーはアプリ内から仮想アイテムを直接購入することができます。複数のレベルや環境、または仮想プロパティを持つゲームアプリケーションを開発する場合は、アプリケーションにIn App Purchase機能を追加して、レベル、環境、またはプロパティをさらに販売することを検討してください。 App Purchaseで...

エディタの選択

効果的なホームビジネスWebサイトを作成する方法 - ダミー

効果的なホームビジネスWebサイトを作成する方法 - ダミー

素晴らしいかもしれませんが、製品やサービスをさらに販売するのに役立たない場合は、時間とお金の無駄です。自宅のビジネスにとって本物の資産であるWebサイトを構築するための、実証済みの方法をいくつか試してみましょう。難しいことではありません...

マスターCSSファイルを作成する方法 - ダミー

マスターCSSファイルを作成する方法 - ダミー

多くのデザイナーがマスターHTMLコードのCSSファイルを作成し、個々のサイトのニーズに合わせて、最初からウェブサイトを構築するプロセスをスピードアップします。あなたがより多くのウェブサイトを構築するにつれて、いくつかのスタイルは標準的なデザインプラクティスの標準的な部分になります。 ...

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

Bing検索結果と並んでクリック単価(PPC)広告はMSN adCenterを通じて提供されます。 adCenterを使用して、Webマーケティングのニーズに合わせてアカウントとキャンペーンを作成できます。 Microsoftは、Bing Travel、adCenter Desktopなどのプログラムを追加することで、PPCサービスのインターフェース、ツール、検索品質、およびボリュームを向上させるために歩み続けています。...

エディタの選択

地中海ダイエットレシピ:フルーツサラダ - ダミー

地中海ダイエットレシピ:フルーツサラダ - ダミー

果実は地中海で豊富に生育し、地中海沿岸に沿って、アメリカ人より一般的に果実を多く食べるため、地中海の高レベルの疾病予防に貢献しています。あなたの次の食事やパーティーのために健康的なサイドディッシュのフルーツサラダを作るには、いくつかの方法があります。果物は地中海で豊富に生育し、地中海沿岸に住む人々は一般にアメリカ人よりも多くの果実を食べるため、地中海の高レベルの疾病予防に寄与します。

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

ジャイロとピタサンドイッチは一般的なカジュアルな食品です地中海でピザや他の地中海のサンドイッチと同じように、今日はピタサンドイッチとジャイロのさまざまなバージョンが存在します。ピタスは蒸気で作られた中央のポーチ付きの丸いパンです。