hadoopエンタープライズソリューションセミナー2012:...
DESCRIPTION
2012/12/20に東京コンファレンスセンター品川で開催された『Hadoopエンタープライズソリューションセミナー』(NTTデータ主催)での講演資料です。 講演概要 == NTTコミュニケーションズはソーシャルメディアをリアルタイムに解析する大規模データ処理基盤を開発しており、クチコミ分析サービス「BuzzFinder」では日本語ツイートの全量をリアルタイムに分析しています。 本セッションではHadoopとRabbitMQを活用した大規模日本語データ解析の事例をご紹介します。TRANSCRIPT
Hadoop/RabbitMQを利用したTwitter全量リアルタイム解析
Copyright © 2012 NTT Communications Co., Ltd. All Rights Reserved.
Twitter全量リアルタイム解析原 謙治
NTTコミュニケーションズ株式会社先端IPアーキテクチャセンタ
2012年12月10日
自己紹介
@haracane
原 謙治
NTTコミュニケーションズの先端IPアーキテクチャセンタというR&D部門での大規模データ処理を主に担当。
2010年頃からTwitterを中心としたソーシャルメディアの日本語解析にHadoopを利用。
クチコミ分析サービスBuzzFinderの開発ではTwitter解析エンジンの
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 1
クチコミ分析サービスBuzzFinderの開発ではTwitter解析エンジンのアーキテクチャ設計・実装・テストを担当。
好きなものは「面白いデータ」
本日のアジェンダ• BuzzFinderについて• Twitterデータの特徴• BuzzFinderでのTwitterデータ解析
– 日本語解析処理– データ処理フロー
• Twitter全量リアルタイム解析システム– Hadoopを使ったバッチ処理– RabbitMQ/Hadoopを組み合わせたリアルタイム処理– RabbitMQ/Hadoopを組み合わせたリアルタイム処理
• 解析例のご紹介
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 2
BuzzFinderについて
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.3
BuzzFinderとはNTTコミュニケーションズグループが提供する
「国内最大級のクチコミ数を対象としたリアルタイム分析サービス」BuzzFinderの特徴
Twitterの日本語ツイート全量と、国内ブログサイトの90%以上を対象に口コミを分析
11
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 4http://www.nttcoms.com/service/buzzfinder.html
クチコミデータをリアルタイムに分析
風評・炎上対策のためにクチコミ数の動向から異変を検出して担当者にメール通知
22
33
Twitterデータの特徴
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.5
ツイート量の傾向
0時がピーク
午後に増加19時頃から上昇
8時頃まで上昇
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 6
23時〜1時頃がツイート量が多く、3時頃〜6時頃が少ない
深夜に減少
8時頃まで上昇
Twitterデータからわかる情報
ツイート本文
JSONツイート本文だけでなくユーザの情報もツイート毎に取得できる
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 7
ユーザ名
アカウント名
自己紹介文場所 フォロワー数なども
BuzzFinderでのTwitterデータ日本語解析処理Twitterデータ日本語解析処理
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.8
Twitterデータの日本語解析
ツイート本文
JSONリッチインデクシング技術*を利用して多面的に各ツイートを解析
キーワード
キーワードの関連語
JSON
日本語解析済
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 9
自己紹介文
場所
ユーザの属性(年齢/性別/職業)
ユーザの居住地
キーワードの評判(ポジティブ/ネガティブ)
日本語解析済データ
* リッチインデクシング技術はNTT研究所が開発した日本語解析技術
ツイート本文の日本語解析
キーワード抽出 「地震」を解析対象キーワードとして抽出
イタリアで地震予知外すと禁錮6年かあ…
イタリアで地震予知 関連語抽出 「禁錮6年」を「地震」の
ツイート本文からキーワード、関連語、ポジネガ語を抽出
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 10
イタリアで地震予知外すと禁錮6年かあ… 関連語抽出 「禁錮6年」を「地震」の
関連語として抽出
コストコで地震は怖すぎ… ポジネガ抽出 「怖い」を「地震」の
ネガティブ語として抽出
自己紹介文・場所の日本語解析
年齢抽出 「三⼗路」から「30代」を年齢として抽出
性別抽出 「婦⼥⼦」から「⼥性」を性別として抽出
自己紹介文から年齢、性別、職業を抽出場所からは都道府県を抽出
三⼗路の婦⼥⼦OLやってます
三⼗路の婦⼥⼦OL
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 11
性別抽出 性別として抽出
職業抽出 「OL」から「会社員」を職業として抽出
三⼗路の婦⼥⼦OLやってます
三⼗路の婦⼥⼦OLやってます
地域抽出 「歌舞伎町」から「東京」を地域として抽出歌舞伎町の近く
BuzzFinderでのTwitterデータ処理フローTwitterデータ処理フロー
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.12
BuzzFinderでのTwitterデータ処理フロー
RDB
Hadoop/RabbitMQで日本語解析&統計
PostgreSQLでインデックス作成&集計結果保持
分散処理システムを組み合わせて大規模ソーシャルデータのリアルタイム解析を実現
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 13
結果出⼒
Twitter解析クラスタ
RDB
Webサーバ
日本語全量(Firehose)
KVSCassandraでTwitter&解析データ保持
Railsで検索&集計
Twitter解析クラスタの構成
リアルタイム処理クラスタ
速度優先のリアルタイム処理クラスタとデータ網羅性優先のバッチ処理クラスタの⼆重構成でTwitterデータを解析
速報性を重視リアルタイムデータ蓄積
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 14
クラスタ
バッチ処理クラスタ
データ網羅性を重視
バッチデータ蓄積
KVSRDB
Twitter解析バッチ処理クラスタ
リアルタイム処理クラスタ
リアルタイムデータ蓄積
データ網羅性を重視したMapReduce処理
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 15
クラスタ
バッチ処理クラスタ
バッチデータ蓄積
KVSRDB
Twitter解析バッチ処理クラスタ
Map処理(HadoopStreaming)のみで日本語解析
MapReduceで集計処理
日本語解析Map処理と集計MapReduce処理の2段構成で全Twitterデータをバッチ処理
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 16
データ蓄積
日本語全量(Firehose)
KVSRDB
Twitter解析バッチ処理クラスタ
リアルタイム処理クラスタ
リアルタイムデータ蓄積
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 17
クラスタ
バッチ処理クラスタ
バッチデータ蓄積
KVSRDB速報性を重視したリアルタイム処理
RabbitMQとは受け取ったメッセージをその順番のまま出⼒する
Message Queueソフトウェア
①メッセージA ①メッセージAPublish Subscribe
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 18
②メッセージB
③メッセージC
②メッセージB
③メッセージC
Twitterリアルタイム処理クラスタ
日本語解析Map処理をRabbitMQ経由でストリーム実⾏
MapReduceで最新データを集計
Map処理をRabbitMQ経由で実⾏することで日本語解析をストリーム処理
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 19
データ蓄積
日本語全量(Firehose)
KVSRDB
バッチ処理⇒リアルタイム処理への移⾏
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.20
日本語解析&集計バッチ処理日本語解析Map
解析済データ
Keywords
Topics
Keywords
Topics
キーワード
ポジネガ
ユーザ属性
関連語
データ抽出Map
キーワード集計
関連語集計
ポジネガ集計
集計Reduce
日本語解析Map処理が課題
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 21
Locations
Index Data
Locations
Index Data
ユーザ属性
検索インデックス
ユーザ属性集計
Index DataIndex Dataツイートデータ
LocationsLocations居住地居住地集計
KVS
RDB
リアルタイム日本語解析&集計処理日本語解析Map
解析済データ
Keywords
Semtiment
Topics
Keywords
Semtiment
Topics
キーワード
ポジネガ
ユーザ属性
関連語
データ抽出Map
キーワード集計
関連語集計
ポジネガ集計
集計Reduce
(Hadoop実⾏していた)Mapperプログラムを
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 22
Locations
Index Data
Locations
Index Data
ユーザ属性
検索インデックス
ユーザ属性集計
Index DataIndex Dataツイートデータ
LocationsLocations居住地居住地集計
(Hadoop実⾏していた)Mapperプログラムを分散ストリーム処理
クラスタで実⾏
KVS
RDB
Map処理のRabbitMQ移⾏
⼊⼒1
⼊⼒2
⼊⼒3
出⼒1
出⼒2
出⼒3
Mapperプログラム
HDFS HDFSTaskTracker
(Hadoop Streaming)
Hadoop Streamingで実⾏していたMapperプログラムをそのまま使ってストリーム処理を実⾏
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 23
⼊⼒3 出⼒3
⼊⼒1
⼊⼒2
⼊⼒3
出⼒1
出⼒2
出⼒3
Mapperプログラム
MessageQueue
MessageQueueDaemon Process
ストリーム処理化
BuzzFinderでのTwitterデータ処理フロー
RDB
バッチ&リアルタイムデータを出⼒
分散処理システムを組み合わせて大規模ソーシャルデータのリアルタイム解析を実現
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 24
結果出⼒
Twitter解析クラスタ
RDB
Webサーバ
日本語全量(Firehose)
KVS
Twitter分析結果
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.25
Tweet数の推移10月以降の「地震」のTwitter上でのトレンド
M5.3@宮城県沖M4.9@千葉県北⻄部
イタリア地震学者が予知失敗で禁錮6年・中越地震発生日
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 26
10/19 10/26 11/2 11/9 11/16 11/23 11/30
首都圏の地震では大きくツイート数が伸びる
M7.7@カナダ⻄海岸
M5.6@宮城県沖
関連語分析
宮城沖地震
宮城県沖怖い多い地震速報
カナダ地震
カナダ日本日本時間⻄海岸
イタリア裁判・中越地震発生日禁錮6年イタリア地震予知失敗新潟県中越地震
首都圏・宮城沖地震怖い多い震度4地震速報
「地震」の関連語上位5件
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 27
地震速報宮城県
⻄海岸マグニチュード7.7
新潟県中越地震伊地裁
実際の地震では感情表現が増加する
地震速報発生時刻
「怖い」という感情表現が1位地震情報が中心刑期のインパクト大 震源地に関心
評判分析「地震」に関する評判
31.3%68.7% 64.8%
35.2%59.6%
40.4% 29.6%70.4%
イタリア裁判 宮城沖地震 カナダ地震 首都圏・宮城沖地震
ネガティブポジティブ
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
首都圏地震の時が最もネガティブ
28
68.7% 64.8% 59.6% 70.4%
地域分析
宮城沖地震
東京宮城神奈川埼玉
カナダ地震
東京神奈川愛知埼玉
イタリア裁判・中越地震発生日東京神奈川新潟千葉
首都圏・宮城沖地震東京神奈川埼玉千葉
「地震」とつぶやいたユーザの場所上位5件
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
地震があると震源地のツイートが増加
29
埼玉福島
埼玉千葉
千葉埼玉
千葉宮城
ほぼ人口順全国に分布新潟が上位に 震源地近辺が上位に
性別分析「地震」についてつぶやいたユーザの男⼥⽐ 男性
⼥性
54.7% 45.3% 64.4%35.6%
イタリア裁判 宮城沖地震 カナダ地震 首都圏・宮城沖地震
73.2%
26.7%57.8%
42.2%
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
実際の地震では⼥性率が上がる
30
54.7% 64.4%73.2% 57.8%
年齢分析「地震」についてつぶやいたユーザの年齢分布 20代
10代
イタリア裁判 宮城沖地震 カナダ地震 首都圏・宮城沖地震
40代30代
50代〜
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
実際の地震では若年層のつぶやきが多い(特に首都圏で起きた場合)
31
50代以上が多い(9.9%)
10代が多い(38.6%)
10代が少ない(19.8%)
10代・20代が多い(31.2・31.6%)
職業分析「地震」についてつぶやいたユーザの職業分布
自営業
公務員
イタリア裁判 宮城沖地震 カナダ地震 首都圏・宮城沖地震 学生
専門職
その他
会社員
アルバイト
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
裁判の話題では公務員のつぶやきが多い学生は若年層と同様の傾向
32
特徴なし 学生が多い(53.8%)
公務員が多い(9.2%)
学生が多い(48.0%)
まとめ
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.33
本日ご紹介した内容• BuzzFinderのTwitter全量日本語解析の⼆つの仕組みの紹介
– バッチ処理– リアルタイム処理
• Map処理のRabbitMQ移⾏によるストリーム処理化
• BuzzFinderでの「地震」解析例のご紹介
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 34
Contacts• BuzzFinderについて
– サービス紹介:http://www.nttcoms.com/service/buzzfinder.html
• Hadoop等について– 原謙治
• [email protected]• Twitter @haracane• ブログ http://hatacomp.hateblo.jp/
Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.
• ブログ http://hatacomp.hateblo.jp/
35
Q&A
Copyright © 2012 NTT Communications Co., Ltd. All Rights Reserved.Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.36