Weitere ähnliche Inhalte
Ähnlich wie 20111215_第1回EMR勉強会発表資料 (20)
Kürzlich hochgeladen (11)
20111215_第1回EMR勉強会発表資料
- 1. EMR勉強会発表資料
アクセスログ解析システム構築事例
インフラ設計編/アプリ設計編
2011/12/15
ヴェルク株式会社
津久井 浩太郎
石田 智志
Copyright ©2011 by Velc, Inc. Japan
- 2. Agenda
インフラ設計編 (by 津久井)
• EMRを利用したシステム構成例
• Hadoop/EMRのインフラ設計のポイント
アプリ設計編 (by 石田)
• Hiveについて
• アプリケーション実装事例
Copyright ©2011 by Velc, Inc. Japan
- 4. 自己紹介
津久井浩太郎 (@quarterkota)
•ITコンサル(4年半) → ITベンチャー(2年) → 起業(昨年末)
•もともとは基幹系を中心としたインフラ畑出身
•現在はPMや営業や事業企画等の何でも屋状態
•好きなAWSのサービスはRDS
•最近はまってるサービスはVPC
•スキーとダイビングが好き
Copyright ©2011 by Velc, Inc. Japan
- 5. EMRを利用したシステム構成例
ログ計測 集計管理(UI・EMR制御)
ELB/EC2 ELB/EC2/EBS/RDS
EBS/AutoScale
アクセスログデータの生成
起動/制御
Hadoop Job
EMR
ログ 集計条件に従った集計処理
取り込み
ログ 集計結果
取り込み 取り込み
データストア(アクセスログ、集計結果CSVの保存)
S3
Copyright ©2011 by Velc, Inc. Japan
- 6. EMRを利用したシステム構成例
ログ計測 集計管理(UI・EMR制御)
ELB/EC2 ELB/EC2/EBS/RDS
EBS/AutoScale
アクセスログデータの生成
起動/制御
Hadoop Job
EMR
ログ 集計条件に従った集計処理
取り込み
ログ 集計結果
取り込み 取り込み
データストア(アクセスログ、集計結果CSVの保存)
S3
Copyright ©2011 by Velc, Inc. Japan
- 7. EMRを利用したシステム構成例
1.利用時のみ起動するインスタンス群
→ 運用コストを安価に
Hadoop Job
EMR
集計条件に従った集計処理
Copyright ©2011 by Velc, Inc. Japan
- 8. EMRを利用したシステム構成例
ログ計測 集計管理(UI・EMR制御)
ELB/EC2 ELB/EC2/EBS/RDS
EBS/AutoScale
アクセスログデータの生成
起動/制御
Hadoop Job
EMR
ログ 集計条件に従った集計処理
取り込み
ログ 集計結果
取り込み 取り込み
データストア(アクセスログ、集計結果CSVの保存)
S3
Copyright ©2011 by Velc, Inc. Japan
- 9. EMRを利用したシステム構成例
集計管理(UI・EMR制御)
ELB/EC2/EBS/RDS
起動/制御
2.EMRインスタンス群の起動状況の監視/管理
→EMRの安定運用
Copyright ©2011 by Velc, Inc. Japan
- 10. EMR選定時に気をつけること
大量データ
バッチ集計
スモールスタート
Copyright ©2011 by Velc, Inc. Japan
- 12. 自己紹介
• 石田 智志(@o918)
• 広告系システム会社(4年程) → VELC(9ヶ月目)
• B to Bのシステムの開発 → AWS周りの検証and開発
• 好きなAWSサービス → EC2
Copyright ©2011 by Velc, Inc. Japan
- 15. アプリ実装事例 ~データ蓄積~
• データ格納イメージ
Hive TABLE 構成 S3 構成
バケット
ACCESS_LOG ACCESS_LOG※テーブル
ACCESS_YM=201111※パーテーション
• ACCESS_DATETIME ACCESS_YM=201112※パーテーション
• REMOTE_IP ログ1
• USER_AGENT ログ2
• URL
2011-12-14 19:00:00,xxx.xxx.xxx.xxx,iPhone,http://velc.biz/,http://velc.jp/
• REFERER
2011-12-14 19:00:10,xxx.xxx.xxx.xxx,IE,http://velc.com/,http://velc.jp/
• ACCESS_YM
2011-12-14 19:10:00,xxx.xxx.xxx.xxx,firefox,http://velc.co.jp/,
(パーテーション)
2011-12-14 19:12:30,xxx.xxx.xxx.xxx,chorme,http://velc.ne.jp/,
...
Copyright ©2011 by Velc, Inc. Japan
- 16. アプリ実装事例 ~データ抽出~
• RDBのように操作できるのでSELECTでデータ抽出
hive> SELECT * FROM ...
• Hadoop(EMR)が常時起動していない
• API経由でEMRを起動(Ruby Client)
$ elastic-mapreduce --create --name *** --num-instances
* --instance-type m1.small --hive-interactive
Copyright ©2011 by Velc, Inc. Japan
- 17. アプリ実装事例 ~データ抽出~
• Hadoop Hive環境が立ち上がったのでデータ抽出
hive> SELECT * FROM ...
• Hive上にTableとデータが存在しない
• CREATE文でTableの作成とS3上のデータをロード
hive> CREATE EXTERNAL ACCESS_LOG
(ACCESS_DATETIME STRING,...)
PARTITIONED BY (ACCESS_YM STRING)
... LOCATION 's3://バケット/ACCESS_LOG/';
> ALTER TABLE ACCESS_LOG RECOVER PARTITIONS;
Copyright ©2011 by Velc, Inc. Japan
- 18. アプリ実装事例 ~データ抽出~
• Hadoop Hive環境 + S3 DATA
hive> SELECT * FROM ...
• SELECTの出力先をS3に指定
hive> INSERT OVERWRITE DIRECTORY „s3://バケット/***'
SELECT ACCESS_DATETIME FROM ACCESS_LOG WHERE ...;
• EMR起動時にHiveQLを指定
$ elastic-mapreduce --create --name *** --num-instances *
--instance-type m1.small --hive-interactive
--args ¥"s3://us-west-1.elasticmapreduce/libs/hive/hive-script¥”
,¥"--base-path¥",¥"s3://us-west-1.elasticmapreduce/libs/hive/¥”
,¥“--run-hive-script¥”,¥“--args¥”,¥“-f¥”,¥“s3://バケット/HiveQLFile¥”
Copyright ©2011 by Velc, Inc. Japan
- 20. ご清聴ありがとうございました
enjoy life and creation
Copyright ©2011 by Velc, Inc. Japan