Apache Flumeチュートリアル:Twitterデータストリーミング



このApacheFlumeチュートリアルブログでは、ApacheFlumeの基本とその機能について説明しています。また、ApacheFlumeを使用したTwitterストリーミングも紹介します。

このApacheFlumeチュートリアルブログでは、Flumeがさまざまなソースからのデータのストリーミングにどのように役立つかを理解します。ただし、その前に、データの取り込みの重要性を理解しましょう。データの取り込みは、データを処理および分析し、そこからビジネス価値を引き出すための最初の重要なステップです。組織内でデータが収集されるソースは複数あります。

Flumeが非常に人気になったもう1つの重要な理由について話しましょう。ご存知の方もいらっしゃると思います 、あらゆる種類のデータを保存できるため、業界で非常に使用されています。 FlumeはHadoopと簡単に統合でき、非構造化データと半構造化データをHDFSにダンプして、Hadoopのパワーを補完します。これが、ApacheFlumeがHadoopエコシステムの重要な部分である理由です。





このApacheFlumeチュートリアルブログでは、以下について説明します。



このFlumeチュートリアルは、ApacheFlumeとは何かについて説明することから始めます。次に、Flumeを使用する利点を理解します。

Apache Flumeチュートリアル:ApacheFlumeの概要

ApacheFlumeロゴ-ApacheFlumeチュートリアル-EdurekaApache Flumeは、HDFSでデータを取り込むためのツールです。ログファイル、ネットワークトラフィック、ソーシャルメディア、電子メールメッセージなどのさまざまなソースからのイベントなど、大量のストリーミングデータを収集、集約、およびHDFSに転送します。Flumeは信頼性が高く、分散されています。

Flumeの設計の背後にある主なアイデアは、さまざまなWebサーバーからHDFSへのストリーミングデータをキャプチャすることです。ストリーミングデータフローに基づくシンプルで柔軟なアーキテクチャを備えています。フォールトトレラントであり、フォールトトレランスと障害回復のための信頼性メカニズムを提供します。



Flumeとは何かを理解したら、このFlumeチュートリアルブログに進んで、ApacheFlumeの利点を理解しましょう。次に、Flumeのアーキテクチャを見て、それが基本的にどのように機能するかを理解しようとします。

Javaの例のインスタンス変数

Apache Flumeチュートリアル: ApacheFlumeの利点

Apache Flumeにはいくつかの利点があり、他の利点よりも優れています。利点は次のとおりです。

  • Flumeは、スケーラブルで信頼性が高く、フォールトトレラントであり、さまざまなソースとシンクに合わせてカスタマイズできます。
  • Apache Flumeは、HBaseやHDFSなどの集中型ストアにデータを保存できます(つまり、データは単一のストアから提供されます)。
  • Flumeは水平方向にスケーラブルです。
  • 読み取り速度が書き込み速度を超える場合、Flumeは読み取り操作と書き込み操作の間で安定したデータフローを提供します。
  • Flumeは、信頼性の高いメッセージ配信を提供します。 Flumeのトランザクションはチャネルベースであり、メッセージごとに2つのトランザクション(1つの送信者と1つの受信者)が維持されます。
  • Flumeを使用すると、複数のサーバーからHadoopにデータを取り込むことができます。
  • 信頼性が高く分散されたソリューションを提供し、Facebook、Twitter、eコマースWebサイトなどの大量のデータセットを収集、集約、および移動するのに役立ちます。
  • これは、ネットワークトラフィック、ソーシャルメディア、電子メールメッセージ、ログファイルなどのさまざまなソースからオンラインストリーミングデータをHDFSに取り込むのに役立ちます。
  • 多数の送信元および宛先タイプのセットをサポートします。

このアーキテクチャーは、ApacheFlumeにこれらの利点を提供するものです。さて、Apache Flumeの利点を知っているので、先に進んでApacheFlumeアーキテクチャーを理解しましょう。

Apache Flumeチュートリアル:Flumeアーキテクチャ

次に、下の図からFlumeのアーキテクチャを理解しましょう。

さまざまなデータソースからHDFSにストリーミングデータを取り込むFlumeエージェントがあります。この図から、Webサーバーがデータソースを示していることが簡単に理解できます。 Twitterは、ストリーミングデータの有名なソースの1つです。

水路エージェントには、ソース、シンク、チャネルの3つのコンポーネントがあります。

    1. ソース :着信ストリームラインからのデータを受け入れ、チャネルにデータを格納します。
    2. チャネル :一般的に、読み取り速度は書き込み速度よりも高速です。したがって、読み取りと書き込みの速度の違いに一致するバッファが必要です。基本的に、バッファは一時的に転送されるデータを格納する中間ストレージとして機能するため、データの損失を防ぎます。同様に、チャネルは、HDFS内のデータのソースと永続データの間のローカルストレージまたは一時ストレージとして機能します。
    3. シンク :次に、最後のコンポーネントであるSinkがチャネルからデータを収集し、HDFSにデータを永続的にコミットまたは書き込みます。

Apache Flumeがどのように機能するかがわかったので、TwitterデータをシンクしてHDFSに保存する実際的な場所を見てみましょう。

Apache Flumeチュートリアル:Twitterデータのストリーミング

この実践では、Flumeを使用してTwitterからデータをストリーミングし、次の画像に示すようにデータをHDFSに保存します。

最初のステップは、Twitterアプリケーションを作成することです。このためには、最初に次のURLにアクセスする必要があります。 https://apps.twitter.com/ Twitterアカウントにサインインします。次の画像に示すように、[アプリケーションの作成]タブに移動します。

次に、下の画像に示すようにアプリケーションを作成します。

このアプリケーションを作成すると、Key&Accessトークンが見つかります。キーとアクセストークンをコピーします。これらのトークンをFlume構成ファイルに渡して、このアプリケーションに接続します。

次の画像に示すように、flumeのルートディレクトリにflume.confファイルを作成します。すでに説明したように、Flumeのアーキテクチャでは、ソース、シンク、チャネルを構成します。ソースはTwitterであり、そこからデータをストリーミングし、シンクはHDFSであり、ここからデータを書き込みます。

ソース構成では、Twitterのソースタイプを次のように渡します。 org.apache.flume.source.twitter.TwitterSource。 次に、Twitterから受け取った4つのトークンすべてを渡します。最後に、ソース構成で、ツイートをフェッチするキーワードを渡します。

シンク構成では、HDFSプロパティを構成します。 HDFSパス、書き込み形式、ファイルタイプ、バッチサイズなどを設定します。最後に、次の図に示すようにメモリチャネルを設定します。

これで、実行の準備が整いました。先に進んで、次のコマンドを実行しましょう。

$ FLUME_HOME / bin / flume-ngエージェント--conf./conf/ -f $ FLUME_HOME / flume.conf

このコマンドをしばらく実行した後、CTRL + Cを使用してターミナルを終了できます。次に、Hadoopディレクトリに移動して、ファイルが作成されているかどうかに関係なく、上記のパスを確認できます。

Pythonのインスタンスとは何ですか

ファイルをダウンロードして開きます。下の画像に示すようなものが得られます。

このブログがあなたにとって有益で付加価値があることを願っています。あなたがもっと学ぶことに興味があるなら、あなたはこれを通過することができます ビッグデータと、Hadoopがビッグデータに関連する課題をどのように解決しているかについて説明します。

Apache Flumeを理解したので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaビッグデータHadoop認定トレーニングコースは、小売、ソーシャルメディア、航空、観光、金融の各ドメインでリアルタイムのユースケースを使用して、学習者がHDFS、Yarn、MapReduce、Pig、Hive、HBase、Oozie、Flume、Sqoopのエキスパートになるのに役立ちます。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。