Hadoop Conference Japan 2013 Winter: "見える"Twitter全量リアルタイム解析 ~Hadoop/RabbitMQ処理の仕組みと可視化~

3,688 views

Published on

2013/1/21に東京ビッグサイトで開催された『Hadoop Conference Japan 2013 Winter』(日本Hadoopユーザー会主催)での講演資料です。
【講演概要】
NTTコミュニケーションズグループが提供する日本語ツイート全量リアルタイム分析サービス「BuzzFinder」では、データ処理基盤にHadoop/RabbitMQ/Cassandra/PostgreSQL等を利用して日々多くのデータを処理しています。
このような大規模データ処理システムの運用にはシステム動作状況の把握がとても重要で、BuzzFinderではデータ処理量の可視化を行うことでシステムの監視および性能改善に役立てています。
そこで、本セッションではBuzzFinderデータ処理基盤のデータ処理とその可視化についてご紹介します。

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,688
On SlideShare
0
From Embeds
0
Number of Embeds
45
Actions
Shares
0
Downloads
0
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

Hadoop Conference Japan 2013 Winter: "見える"Twitter全量リアルタイム解析 ~Hadoop/RabbitMQ処理の仕組みと可視化~

  1. 1. ”⾒える”Twitter全量リアルタイム解析〜Hadoop/RabbitMQ処理の仕組みと可視化〜 原 謙治 NTTコミュニケーションズ株式会社 先端IPアーキテクチャセンタ 2013年1月21日 Copyright © 2012 NTT Communications Co., Ltd. All Rights Reserved.
  2. 2. 自己紹介 原 謙治 NTTコミュニケーションズの先端IPアーキテクチャセンタという R&D部門での大規模データ処理を主に担当。@haracane 2010年頃からTwitterを中心としたソーシャルメディアの日本語解析 にHadoopを利用。 クチコミ分析サービスBuzzFinderの開発ではTwitter解析エンジンの アーキテクチャ設計・実装・テストを担当。 好きなものは「面白いデータ」 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 1
  3. 3. 本日のアジェンダ• BuzzFinderについて• Twitterデータの特徴• BuzzFinderでのTwitterデータ日本語解析• BuzzFinderでのTwitterデータ処理フロー – Hadoopを使ったバッチ処理 – RabbitMQ/Hadoopを組み合わせたリアルタイム処理• Twitterデータ処理のグラフ可視化• 解析例のご紹介 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 2
  4. 4. BuzzFinderについて 3 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  5. 5. BuzzFinderとは NTTコミュニケーションズグループが提供する「国内最大級のクチコミ数を対象としたリアルタイム分析サービス」 BuzzFinderの特徴 1 Twitterの日本語ツイート全量と、 国内ブログサイトの90%以上を 対象に口コミを分析 2 クチコミデータを リアルタイムに分析 3 風評・炎上対策のために クチコミ数の動向から異変を検出 して担当者にメール通知 http://www.nttcoms.com/service/buzzfinder.html Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 4
  6. 6. Twitterデータの特徴 5 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  7. 7. ツイート量の傾向 0時がピーク 19時頃から上昇 午後に増加 8時頃まで上昇 深夜に減少23時〜1時頃がツイート量が多く、3時頃〜6時頃が少ない Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 6
  8. 8. Twitterデータからわかる情報ツイート本文だけでなくユーザの情報もツイート毎に取得できる JSON ツイート本文 ユーザ名 アカウント名 自己紹介文 場所 フォロワー数なども Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 7
  9. 9. BuzzFinderでのTwitterデータ日本語解析処理 8 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  10. 10. Twitterデータの日本語解析リッチインデクシング技術*を利用して多面的に各ツイートを解析 JSON JSON キーワード ツイート本文 日 本 語 キーワードの関連語 解 析 キーワードの評判 (ポジティブ/ネガティブ) 済 自己紹介文 デ ユーザの属性 ー (年齢/性別/職業) タ 場所 ユーザの居住地 * リッチインデクシング技術はNTT研究所が開発した日本語解析技術 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 9
  11. 11. ツイート本文の日本語解析 ツイート本文からキーワード、関連語、ポジネガ語を抽出イタリアで地震予知 「地震」を解析対象外すと禁錮6年かあ… キーワード抽出 キーワードとして抽出イタリアで地震予知 「禁錮6年」を「地震」の 関連語抽出外すと禁錮6年かあ… 関連語として抽出コストコで地震は 「怖い」を「地震」の ポジネガ抽出 怖すぎ… ネガティブ語として抽出 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 10
  12. 12. 自己紹介文・場所の日本語解析 自己紹介文から年齢、性別、職業を抽出 場所からは都道府県を抽出三⼗路の腐⼥⼦OL 「三⼗路」から「30代」をやってます 年齢抽出 年齢として抽出三⼗路の腐⼥⼦OL 「腐⼥⼦」から「⼥性」を 性別抽出やってます 性別として抽出三⼗路の腐⼥⼦OL 「OL」から「会社員」を 職業抽出やってます 職業として抽出 「歌舞伎町」から「東京」を歌舞伎町の近く 地域抽出 地域として抽出 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 11
  13. 13. BuzzFinderでのTwitterデータ処理フロー 12 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  14. 14. BuzzFinderでのTwitterデータ処理フロー 分散処理システムを組み合わせて 大規模ソーシャルデータのリアルタイム解析を実現 PostgreSQLで Hadoop/RabbitMQで インデックス作成 日本語解析&統計 &集計結果保持 RDB 日本語全量 結果 (Firehose) 出⼒Twitter Twitter解析 Webサーバ クラスタ KVS Railsで検索&集計 Cassandraで Twitter&解析データ保持 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 13
  15. 15. Twitter解析クラスタの構成 速度優先のリアルタイム処理クラスタとデータ網羅性優先のバッチ処理クラスタの⼆重構成でTwitterデータを解析速報性を重視 リアルタイム データ蓄積 リアルタイム処理 クラスタ バッチ RDB KVS データ蓄積データ網羅性を重視 バッチ処理 クラスタ Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 14
  16. 16. Twitter解析バッチ処理クラスタ データ網羅性を重視した リアルタイム MapReduce処理 データ蓄積 リアルタイム処理 クラスタ バッチ RDB KVS データ蓄積 バッチ処理 クラスタ Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 15
  17. 17. Twitter解析バッチ処理クラスタ 日本語解析Map処理と集計MapReduce処理の2段構成で 全Twitterデータをバッチ処理Map処理(HadoopStreaming) MapReduceで のみで日本語解析 集計処理 日本語全量 データ (Firehose) 蓄積 RDB KVS Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 16
  18. 18. Twitter解析バッチ処理クラスタ リアルタイム データ蓄積 リアルタイム処理 クラスタ バッチ RDB KVS 速報性を重視した データ蓄積 リアルタイム処理 バッチ処理 クラスタ Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 17
  19. 19. Twitterリアルタイム処理クラスタ Map処理をRabbitMQ経由で実⾏することで 日本語解析をストリーム処理 日本語解析Map処理を RabbitMQ経由で MapReduceで ストリーム実⾏ 最新データを集計日本語全量 データ(Firehose) 蓄積 RDB KVS Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 18
  20. 20. バッチ/リアルタイム処理の データフロー 19 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  21. 21. バッチ処理のデータフロー日本語解析Map データ抽出Map 集計Reduce キーワード Keywords Keywords キーワード 解析済 集計 データ 関連語 Topics Topics 関連語 集計 ポジネガ ポジネガ 集計 一定時間毎にバッチ処理を実⾏ ユーザ属性 Locations Locations ユーザ属性 集計 居住地 Locations Locations 居住地 集計 検索 Index Data Index Data インデックス 1日分の集計を実⾏ ツイート Index Data RDB Index Data データ KVS Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 20
  22. 22. リアルタイム処理のデータフロー 日本語解析Map データ抽出Map 集計Reduce キーワード Keywords Keywords キーワード 解析済 集計 データ 関連語 Topics Topics 関連語 集計 ポジネガ Semtiment Semtiment ポジネガ 集計(Hadoop実⾏していた) ユーザ属性 Mapperプログラムを Locations Locations ユーザ属性 分散ストリーム処理 集計 クラスタで実⾏ 居住地 Locations Locations 居住地 集計 検索 Index Data Index Data インデックス 一定時間毎に 集計を実⾏ ツイート Index Data RDB Index Data データ KVS Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 21
  23. 23. Twitterデータ処理システムの運用 22 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  24. 24. Twitterデータ処理システムの運用 RDB 日本語全量 結果 (Firehose) 出⼒Twitter Twitter解析 Webサーバ ネットワーク監視 クラスタ KVS ログ確認 各種リソース監視 リソース監視 ブラウザから確認 リソース状態からシステム状態を推測/切り分けするには 運用担当者にシステム内部に関する詳しい知識が必要 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 23
  25. 25. BuzzFinderの運用改善 「ログ表示ツールのWebアプリケーション化」と 「データ処理状況のグラフ可視化」によって運用負荷を低減 PostgreSQLとRailsを利用して バッチ/リアルタイム処理の実⾏ログを Webアプリケーションで表示Twitter解析 クラスタ Muninを利用してデータ処理状況をグラフ可視化 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 24
  26. 26. 処理実⾏ログをWebアプリケーションで表示 シンプルな仕組みの組み合わせで実⾏ログ表示アプリケーションを作成 ジョブ名, 開始時刻, ジョブ名, ジョブ名, 起動ログ 終了時刻, 開始時刻, 開始時刻, 実⾏結果 終了時刻 終了時刻 終了ログTwitter解析 クラスタ 処理の起動時にログ書き込み、 ジョブ毎の Rails Scaffoldに簡易検索機能を終了時に終了時刻と実⾏結果を更新 ログを取得 追加してログを表示 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 25
  27. 27. 実⾏ログ表示Webアプリケーション ジョブ名のプレフィックスで絞り込み 日付で絞り込みジョブ名 処理時間 開始・終了時間 実⾏状態 100⾏以下の少ないコードで実⾏ログ表示 Webアプリケーションを作成 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 26
  28. 28. データ処理状況をMuninでグラフ可視化 処理された各種データ量を定期的に観測してグラフ可視化を⾏う PostgreSQL データ量 HDFSデータ量 QueueサイズTwitter解析 Publish/ クラスタ Subscribe量 Muninで各データをグラフ化 データ種別毎に 処理量を出⼒ Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 27
  29. 29. Muninとは マシンのリソース使用状況を監視・グラフ化する リソースモニタリングツール Muninの特徴 CPU, メモリ, ディスク, ネットワーク等 の監視・グラフ化を⾏う。 大きな特徴はプラグイン作成による拡張 のしやすさ。 プラグインを作成して Twitterデータ処理状況をグラフ化 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 28
  30. 30. バッチ処理データ量の可視化 日本語解析Map データ抽出Map 集計Reduce キーワード Keywords Keywords キーワード 解析済 集計 データ 関連語 Topics Topics 関連語 集計 ポジネガ ポジネガ⼊⼒データ量 集計 ユーザ属性 日本語解析 Locations Locations ユーザ属性 データ量 集計 居住地 Locations Locations 居住地 集計 検索 Index Data Index Data インデックス RDBロード量 各種抽出 ツイート Index Data RDB Index Data データ データ量 KVS KVSロード量 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 29
  31. 31. バッチ処理データ量の可視化 各フェーズでの処理データ量をグラフ可視化 ⼊⼒ツイート 日本語解析 キーワード&関連語 キーワード& (バイト数) (バイト数) (バイト数) 関連語集計 (バイト数) 「いつ」「どこで」 「どのデータが」 処理されているかがわかる 障害対応・パフォーマンスチューニングを強⼒にサポート KVSデータ キーワード& キーワード& (カラム数) 関連語 関連語集計 (レコード数) (レコード数) Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 30
  32. 32. ストリーム処理データ量の可視化 日本語解析Map データ抽出Map 集計Reduce キーワード Keywords Keywords キーワード 解析済 集計 データ 関連語 Topics Topics 関連語 集計 ポジネガ Semtiment Semtiment ポジネガ⼊⼒データ流量 集計 /堆積量 ユーザ属性 Locations Locations ユーザ属性 日本語解析 集計 データ流量 居住地 Locations /堆積量 Locations 居住地 集計 検索 Index Data Index Data インデックス RDBロード量 各種抽出 ツイート Index Data RDB Index Data データ データ流量 KVSロード流量 /堆積量 /堆積量 KVS Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 31
  33. 33. ストリーム処理データ量の可視化 各フェーズでの処理速度、データ処理量、キューサイズをグラフ可視化 ⼊⼒ツイート 日本語解析 キーワード&関連語 キーワード&(ツイート数/秒) (ツイート数/秒) (バイト数) 関連語集計 (バイト数)データ処理量の確認に加えて データ処理速度の安定性も 確認できる 日本語解析出⼒キュー (メッセージ数) Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 32
  34. 34. (補足) データ処理可視化Muninプラグイン• Cawcaw https://github.com/haracane/cawcaw – Rubygemとして公開 – HDFS, MySQL, PostgreSQL, RabbitMQのデータ量可視化をサポート Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 33
  35. 35. Twitter分析結果 34 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  36. 36. Tweet数の推移 10月以降の「地震」のTwitter上でのトレンド イタリア地震学者が M5.3@宮城県沖 予知失敗で禁錮6年 M4.9@千葉県北⻄部 ・中越地震発生日 M5.6@宮城県沖 M7.7@カナダ⻄海岸10/19 10/26 11/2 11/9 11/16 11/23 11/30 首都圏の地震では大きくツイート数が伸びる Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 35
  37. 37. 関連語分析 「地震」の関連語上位5件イタリア裁判・ 宮城沖地震 カナダ地震 首都圏・中越地震発生日 宮城沖地震禁錮6年 宮城県沖 カナダ 怖いイタリア 怖い 日本 多い地震予知失敗 多い 日本時間 震度4新潟県中越地震 地震速報 ⻄海岸 地震速報伊地裁 宮城県 マグニチュード7.7 発生時刻 「怖い」という刑期のインパクト大 震源地に関心 地震情報が中心 感情表現が1位 実際の地震では感情表現が増加する Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 36
  38. 38. 評判分析 ポジティブ 「地震」に関する評判 ネガティブ 首都圏・イタリア裁判 宮城沖地震 カナダ地震 宮城沖地震 31.3% 35.2% 40.4% 29.6% 59.6%68.7% 64.8% 70.4% 首都圏地震の時が最もネガティブ Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 37
  39. 39. 地域分析 「地震」とつぶやいたユーザの場所上位5件イタリア裁判・ 宮城沖地震 カナダ地震 首都圏・中越地震発生日 宮城沖地震東京 東京 東京 東京神奈川 宮城 神奈川 神奈川新潟 神奈川 愛知 埼玉千葉 埼玉 埼玉 千葉埼玉 福島 千葉 宮城 震源地近辺が 新潟が上位に 全国に分布 ほぼ人口順 上位に 地震があると震源地のツイートが増加 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 38
  40. 40. 性別分析 ⼥性 「地震」についてつぶやいたユーザの男⼥⽐ 男性 首都圏・イタリア裁判 宮城沖地震 カナダ地震 宮城沖地震 26.7% 35.6% 45.3% 42.2%54.7% 57.8% 64.4% 73.2% 実際の地震では⼥性率が上がる Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 39
  41. 41. 年齢分析 10代 「地震」についてつぶやいたユーザの年齢分布 20代 30代 首都圏・ 40代イタリア裁判 宮城沖地震 カナダ地震 宮城沖地震 50代〜10代が少ない 10代・20代が多い 50代以上が多い 10代が多い (19.8%) (31.2・31.6%) (9.9%) (38.6%) 実際の地震では若年層のつぶやきが多い (特に首都圏で起きた場合) Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 40
  42. 42. 職業分析 公務員 「地震」についてつぶやいたユーザの職業分布 会社員 自営業 専門職 首都圏・ アルバイトイタリア裁判 宮城沖地震 カナダ地震 学生 宮城沖地震 その他公務員が多い 学生が多い 学生が多い 特徴なし (9.2%) (48.0%) (53.8%) 裁判の話題では公務員のつぶやきが多い 学生は若年層と同様の傾向 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 41
  43. 43. まとめ 42Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
  44. 44. 本日ご紹介した内容• BuzzFinderのTwitter全量日本語解析の⼆つの仕組みの紹介 – バッチ処理 – リアルタイム処理• Muninによるデータ処理状況の可視化• BuzzFinderでの「地震」解析例のご紹介 Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 43
  45. 45. Contacts• BuzzFinderについて – サービス紹介:http://www.nttcoms.com/service/buzzfinder.html• Hadoop等について – 原謙治 • kenji.hara@ntt.com • Twitter @haracane • ブログ http://hatacomp.hateblo.jp/ Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 44
  46. 46. Q&ACopyright © 2012 2011Communications Co., Ltd. All Rights Reserved. 45 Copyright © NTT NTT Communications Co., Ltd. All Rights Reserved.

×