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

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

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

ビデオ: 07 Streaming Analytics - Flume - Web Server logs to HDFS - Customize Sink 2024
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を使用したデータのダミー -

エディタの選択

自転車の点検チェックリスト - ダミー

自転車の点検チェックリスト - ダミー

すぐに自転車の点検をするために数分。あなたの自転車を一時的に与えることは、あなたの次の乗り心地の安全性、快適性、そして楽しさを高めることができます。乗車準備の一環として、次の手順に従ってください:車輪のクイックリリースレバーを開閉して、確認します。

必須サイクリング用具 - ダミー

必須サイクリング用具 - ダミー

あなたはバイクの乗り心地をさらに楽しくするために何百万ものものを買うことができます。自転車用に必要なアクセサリーをいくつかご紹介します。ヘルメット:ヘルメットを着用することはオーストラリアとニュージーランドの法律です。

自転車の範囲を閲覧可能 - ダミー

自転車の範囲を閲覧可能 - ダミー

あなたはサイクリングをすることに決めましたが、その重要なキットを欠いている - バイク!あなたが望む自転車のタイプを正確に知っていない限り、良いアドバイスは、あなたの時間を費やして、自転車で何をするのか、どこに乗るのかを本当に考えてみることです。

エディタの選択

アプリとプライバシー - ダミーを特定する

アプリとプライバシー - ダミーを特定する

Spotifyアプリケーションに登録すると、あなたの個人的な詳細の一部にアクセスする。たとえば、Top10アプリを使用してプレイリストを公開するには、既存のFacebookアカウントにリンクする必要があります。このプロセス中、Facebookはあなたに特定の種類の共有を許可するかどうか尋ねます。

モバイル対応携帯電話を識別する - ダミー

モバイル対応携帯電話を識別する - ダミー

SpotifyモバイルはiPhoneで最も人気がありますが、優れたAndroidバージョン(basks Androidマーケットの5つ星評価のうち5つの評価では5位に入っています)が急速に追いついています。

特集 - ダミー

特集 - ダミー

スポットメイキングは、モバイルでも、あらゆる音楽への普遍的な即時アクセスを可能にしますデバイスまたはデスクトップコンピュータ。 Facebookは人々が古い友達と再会して新しい友達を作るのを助け、Spotifyの助けを借りて青春の歌を再発見し、友人や検索を通じて新鮮な音楽を発見しました。

エディタの選択

IOSアプリケーションでオブジェクト指向設計を使用する方法 - ダミー

IOSアプリケーションでオブジェクト指向設計を使用する方法 - ダミー

IOSは、動作がオブジェクトに関連付けられているプログラムを設計するさまざまな方法です。説明するために、紅茶とスープの作り方を検討することを検討してください。しかし、即座に代わりに活動に飛び込んではいけません。探偵が犯罪現場に入るように行動してください。

IOSアプリケーションでハイレベル抽象化を使用してビデオを再生する方法 - ダミー

IOSアプリケーションでハイレベル抽象化を使用してビデオを再生する方法 - ダミー

このセクションでは、MPMoviePlayerViewControllerクラスの高レベル抽象化を使用してiOSアプリケーションでビデオを再生する方法を説明します。 - (IBAction)playVideo:(id)sender {MPMoviePlayerViewController * moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];このコードは、ビデオビューコントローラ内のTTTVideoViewControllerファイルからです。 [self presentMoviePlayerViewControllerAnimated:moviePlayer];}シンプルさ自体!必要なのはURLです。

IOSアプリケーションでJavaスクリプトオブジェクト表記を使用する方法 - ダミー

IOSアプリケーションでJavaスクリプトオブジェクト表記を使用する方法 - ダミー

JavaScript Object Notation (JSON)はiOSアプリのデータを表現する上で事実上の標準になっています。 JSONを使用して、Web上でデータを転送したり、長期保存データを保存および取得するためのフォーマットとして使用することができます。 JSONは、人間が読める形式であり、マシンが理解しやすい形式です。 JSONのデータは1つにまとめることができます...