Hadoopエンタープライズソリューションセミナー2012:...

37
Hadoop/RabbitMQを用した Twitter全リアルタイム析 Copyright © 2012 NTT Communications Co., Ltd. All Rights Reserved. Twitter全リアルタイム析 NTTコミュニケーションズ会社 端IPアーキテクチャセンタ 2012年12月10日

description

2012/12/20に東京コンファレンスセンター品川で開催された『Hadoopエンタープライズソリューションセミナー』(NTTデータ主催)での講演資料です。 講演概要 == NTTコミュニケーションズはソーシャルメディアをリアルタイムに解析する大規模データ処理基盤を開発しており、クチコミ分析サービス「BuzzFinder」では日本語ツイートの全量をリアルタイムに分析しています。 本セッションではHadoopとRabbitMQを活用した大規模日本語データ解析の事例をご紹介します。

Transcript of Hadoopエンタープライズソリューションセミナー2012:...

Page 1: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Hadoop/RabbitMQを利用したTwitter全量リアルタイム解析

Copyright © 2012 NTT Communications Co., Ltd. All Rights Reserved.

Twitter全量リアルタイム解析原 謙治

NTTコミュニケーションズ株式会社先端IPアーキテクチャセンタ

2012年12月10日

Page 2: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

自己紹介

@haracane

原 謙治

NTTコミュニケーションズの先端IPアーキテクチャセンタというR&D部門での大規模データ処理を主に担当。

2010年頃からTwitterを中心としたソーシャルメディアの日本語解析にHadoopを利用。

クチコミ分析サービスBuzzFinderの開発ではTwitter解析エンジンの

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 1

クチコミ分析サービスBuzzFinderの開発ではTwitter解析エンジンのアーキテクチャ設計・実装・テストを担当。

好きなものは「面白いデータ」

Page 3: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

本日のアジェンダ• BuzzFinderについて• Twitterデータの特徴• BuzzFinderでのTwitterデータ解析

– 日本語解析処理– データ処理フロー

• Twitter全量リアルタイム解析システム– Hadoopを使ったバッチ処理– RabbitMQ/Hadoopを組み合わせたリアルタイム処理– RabbitMQ/Hadoopを組み合わせたリアルタイム処理

• 解析例のご紹介

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 2

Page 4: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

BuzzFinderについて

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.3

Page 5: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

BuzzFinderとはNTTコミュニケーションズグループが提供する

「国内最大級のクチコミ数を対象としたリアルタイム分析サービス」BuzzFinderの特徴

Twitterの日本語ツイート全量と、国内ブログサイトの90%以上を対象に口コミを分析

11

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 4http://www.nttcoms.com/service/buzzfinder.html

クチコミデータをリアルタイムに分析

風評・炎上対策のためにクチコミ数の動向から異変を検出して担当者にメール通知

22

33

Page 6: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitterデータの特徴

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.5

Page 7: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

ツイート量の傾向

0時がピーク

午後に増加19時頃から上昇

8時頃まで上昇

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 6

23時〜1時頃がツイート量が多く、3時頃〜6時頃が少ない

深夜に減少

8時頃まで上昇

Page 8: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitterデータからわかる情報

ツイート本文

JSONツイート本文だけでなくユーザの情報もツイート毎に取得できる

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 7

ユーザ名

アカウント名

自己紹介文場所 フォロワー数なども

Page 9: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

BuzzFinderでのTwitterデータ日本語解析処理Twitterデータ日本語解析処理

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.8

Page 10: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitterデータの日本語解析

ツイート本文

JSONリッチインデクシング技術*を利用して多面的に各ツイートを解析

キーワード

キーワードの関連語

JSON

日本語解析済

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 9

自己紹介文

場所

ユーザの属性(年齢/性別/職業)

ユーザの居住地

キーワードの評判(ポジティブ/ネガティブ)

日本語解析済データ

* リッチインデクシング技術はNTT研究所が開発した日本語解析技術

Page 11: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

ツイート本文の日本語解析

キーワード抽出 「地震」を解析対象キーワードとして抽出

イタリアで地震予知外すと禁錮6年かあ…

イタリアで地震予知 関連語抽出 「禁錮6年」を「地震」の

ツイート本文からキーワード、関連語、ポジネガ語を抽出

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 10

イタリアで地震予知外すと禁錮6年かあ… 関連語抽出 「禁錮6年」を「地震」の

関連語として抽出

コストコで地震は怖すぎ… ポジネガ抽出 「怖い」を「地震」の

ネガティブ語として抽出

Page 12: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

自己紹介文・場所の日本語解析

年齢抽出 「三⼗路」から「30代」を年齢として抽出

性別抽出 「婦⼥⼦」から「⼥性」を性別として抽出

自己紹介文から年齢、性別、職業を抽出場所からは都道府県を抽出

三⼗路の婦⼥⼦OLやってます

三⼗路の婦⼥⼦OL

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 11

性別抽出 性別として抽出

職業抽出 「OL」から「会社員」を職業として抽出

三⼗路の婦⼥⼦OLやってます

三⼗路の婦⼥⼦OLやってます

地域抽出 「歌舞伎町」から「東京」を地域として抽出歌舞伎町の近く

Page 13: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

BuzzFinderでのTwitterデータ処理フローTwitterデータ処理フロー

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.12

Page 14: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

BuzzFinderでのTwitterデータ処理フロー

RDB

Hadoop/RabbitMQで日本語解析&統計

PostgreSQLでインデックス作成&集計結果保持

分散処理システムを組み合わせて大規模ソーシャルデータのリアルタイム解析を実現

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 13

結果出⼒

Twitter解析クラスタ

Twitter

RDB

Webサーバ

日本語全量(Firehose)

KVSCassandraでTwitter&解析データ保持

Railsで検索&集計

Page 15: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitter解析クラスタの構成

リアルタイム処理クラスタ

速度優先のリアルタイム処理クラスタとデータ網羅性優先のバッチ処理クラスタの⼆重構成でTwitterデータを解析

速報性を重視リアルタイムデータ蓄積

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 14

クラスタ

バッチ処理クラスタ

データ網羅性を重視

バッチデータ蓄積

KVSRDB

Page 16: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitter解析バッチ処理クラスタ

リアルタイム処理クラスタ

リアルタイムデータ蓄積

データ網羅性を重視したMapReduce処理

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 15

クラスタ

バッチ処理クラスタ

バッチデータ蓄積

KVSRDB

Page 17: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitter解析バッチ処理クラスタ

Map処理(HadoopStreaming)のみで日本語解析

MapReduceで集計処理

日本語解析Map処理と集計MapReduce処理の2段構成で全Twitterデータをバッチ処理

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 16

データ蓄積

日本語全量(Firehose)

KVSRDB

Page 18: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitter解析バッチ処理クラスタ

リアルタイム処理クラスタ

リアルタイムデータ蓄積

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 17

クラスタ

バッチ処理クラスタ

バッチデータ蓄積

KVSRDB速報性を重視したリアルタイム処理

Page 19: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

RabbitMQとは受け取ったメッセージをその順番のまま出⼒する

Message Queueソフトウェア

①メッセージA ①メッセージAPublish Subscribe

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 18

②メッセージB

③メッセージC

②メッセージB

③メッセージC

Page 20: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitterリアルタイム処理クラスタ

日本語解析Map処理をRabbitMQ経由でストリーム実⾏

MapReduceで最新データを集計

Map処理をRabbitMQ経由で実⾏することで日本語解析をストリーム処理

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 19

データ蓄積

日本語全量(Firehose)

KVSRDB

Page 21: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

バッチ処理⇒リアルタイム処理への移⾏

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.20

Page 22: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

日本語解析&集計バッチ処理日本語解析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

Page 23: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

リアルタイム日本語解析&集計処理日本語解析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

Page 24: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

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

ストリーム処理化

Page 25: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

BuzzFinderでのTwitterデータ処理フロー

RDB

バッチ&リアルタイムデータを出⼒

分散処理システムを組み合わせて大規模ソーシャルデータのリアルタイム解析を実現

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 24

結果出⼒

Twitter解析クラスタ

Twitter

RDB

Webサーバ

日本語全量(Firehose)

KVS

Page 26: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Twitter分析結果

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.25

Page 27: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

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@宮城県沖

Page 28: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

関連語分析

宮城沖地震

宮城県沖怖い多い地震速報

カナダ地震

カナダ日本日本時間⻄海岸

イタリア裁判・中越地震発生日禁錮6年イタリア地震予知失敗新潟県中越地震

首都圏・宮城沖地震怖い多い震度4地震速報

「地震」の関連語上位5件

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 27

地震速報宮城県

⻄海岸マグニチュード7.7

新潟県中越地震伊地裁

実際の地震では感情表現が増加する

地震速報発生時刻

「怖い」という感情表現が1位地震情報が中心刑期のインパクト大 震源地に関心

Page 29: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

評判分析「地震」に関する評判

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%

Page 30: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

地域分析

宮城沖地震

東京宮城神奈川埼玉

カナダ地震

東京神奈川愛知埼玉

イタリア裁判・中越地震発生日東京神奈川新潟千葉

首都圏・宮城沖地震東京神奈川埼玉千葉

「地震」とつぶやいたユーザの場所上位5件

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.

地震があると震源地のツイートが増加

29

埼玉福島

埼玉千葉

千葉埼玉

千葉宮城

ほぼ人口順全国に分布新潟が上位に 震源地近辺が上位に

Page 31: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

性別分析「地震」についてつぶやいたユーザの男⼥⽐ 男性

⼥性

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%

Page 32: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

年齢分析「地震」についてつぶやいたユーザの年齢分布 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%)

Page 33: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

職業分析「地震」についてつぶやいたユーザの職業分布

自営業

公務員

イタリア裁判 宮城沖地震 カナダ地震 首都圏・宮城沖地震 学生

専門職

その他

会社員

アルバイト

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.

裁判の話題では公務員のつぶやきが多い学生は若年層と同様の傾向

32

特徴なし 学生が多い(53.8%)

公務員が多い(9.2%)

学生が多い(48.0%)

Page 34: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

まとめ

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.33

Page 35: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

本日ご紹介した内容• BuzzFinderのTwitter全量日本語解析の⼆つの仕組みの紹介

– バッチ処理– リアルタイム処理

• Map処理のRabbitMQ移⾏によるストリーム処理化

• BuzzFinderでの「地震」解析例のご紹介

Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved. 34

Page 36: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

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

Page 37: Hadoopエンタープライズソリューションセミナー2012: Hadoop&RabbitMQを利用したTwitter全量リアルタイム解析

Q&A

Copyright © 2012 NTT Communications Co., Ltd. All Rights Reserved.Copyright © 2011 NTT Communications Co., Ltd. All Rights Reserved.36