Apache-storm-in-twitter
TwitterのApache Storm
この章では、Apache Stormのリアルタイムアプリケーションについて説明します。 StormがTwitterでどのように使用されるかを確認します。
Twitterは、ユーザーのツイートを送受信するプラットフォームを提供するオンラインソーシャルネットワーキングサービスです。 登録ユーザーはツイートを読んだり投稿したりできますが、未登録ユーザーはツイートを読むことしかできません。 ハッシュタグは、関連するキーワードの前に#を追加することにより、ツイートをキーワード別に分類するために使用されます。 次に、トピックごとに最も使用されるハッシュタグを見つけるリアルタイムのシナリオを見てみましょう。
スパウト作成
スパウトの目的は、できるだけ早く人々から投稿されたツイートを取得することです。 Twitterは、リアルタイムで人々が送信したツイートを取得するためのWebサービスベースのツールである「Twitter Streaming API」を提供します。 Twitter Streaming APIは、あらゆるプログラミング言語でアクセスできます。
- 顧客キー
- CustomerSecret
- アクセストークン
- AccessTookenSecret
Stormは、スターターキットでtwitterスパウト TwitterSampleSpout を提供しています。 これを使用してツイートを取得します。 注ぎ口には、OAuth認証の詳細と少なくともキーワードが必要です。 注ぎ口は、キーワードに基づいてリアルタイムのツイートを送信します。 完全なプログラムコードを以下に示します。
コーディング:TwitterSampleSpout.java
ハッシュタグリーダーボルト
スパウトから送信されたツイートは HashtagReaderBolt に転送され、ツイートを処理して利用可能なすべてのハッシュタグを送信します。 HashtagReaderBoltは、twitter4jが提供する getHashTagEntities メソッドを使用します。 getHashTagEntitiesはツイートを読み取り、ハッシュタグのリストを返します。 完全なプログラムコードは次のとおりです-
コーディング:HashtagReaderBolt.java
ハッシュタグカウンターボルト
発行されたハッシュタグは HashtagCounterBolt に転送されます。 このボルトはすべてのハッシュタグを処理し、Java Mapオブジェクトを使用してすべてのハッシュタグとそのカウントをメモリに保存します。 完全なプログラムコードを以下に示します。
コーディング:HashtagCounterBolt.java
トポロジの送信
トポロジの送信がメインアプリケーションです。 Twitterトポロジは、 TwitterSampleSpout 、 HashtagReaderBolt 、および HashtagCounterBolt で構成されます。 次のプログラムコードは、トポロジを送信する方法を示しています。
コーディング:TwitterHashtagStorm.java
アプリケーションの構築と実行
完全なアプリケーションには4つのJavaコードがあります。 彼らは次のとおりです-
- TwitterSampleSpout.java
- HashtagReaderBolt.java
- HashtagCounterBolt.java
- TwitterHashtagStorm.java
次のコマンドを使用してアプリケーションをコンパイルできます-
次のコマンドを使用してアプリケーションを実行します-
出力
アプリケーションは、現在利用可能なハッシュタグとそのカウントを印刷します。 出力は次のようになります-