SlideShare a Scribd company logo
Submit Search
Upload
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
Report
Share
Atsushi Kurumada
マイクロアド(MicroAd,Inc.)
Follow
•
16 likes
•
6,392 views
1
of
54
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
•
16 likes
•
6,392 views
Report
Share
Download Now
Download to read offline
Engineering
リクルートライフスタイルの考えるストリームデータの活かし方 ~AWS + Kafka + Spark Streaming~
Read more
Atsushi Kurumada
マイクロアド(MicroAd,Inc.)
Follow
Recommended
Apache Sparkのご紹介 (後半:技術トピック)
NTT DATA OSS Professional Services
26.1K views
•
28 slides
Apache Spark の紹介(前半:Sparkのキホン)
NTT DATA OSS Professional Services
58.3K views
•
41 slides
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
20.4K views
•
61 slides
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
493 views
•
41 slides
AWSのログ管理ベストプラクティス
Akihiro Kuwano
77.2K views
•
57 slides
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
hamaken
21.4K views
•
34 slides
More Related Content
What's hot
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
Yahoo!デベロッパーネットワーク
21.9K views
•
55 slides
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
6.6K views
•
76 slides
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
11.7K views
•
57 slides
Nutanixを支える技術 - How OSSes work in Nutanix
Satoshi Shimazaki
1.6K views
•
47 slides
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
NTT DATA Technology & Innovation
233 views
•
22 slides
アサヒのデータ活用基盤を支えるデータ仮想化技術
Denodo
1.6K views
•
22 slides
What's hot
(20)
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
Yahoo!デベロッパーネットワーク
•
21.9K views
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
•
6.6K views
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
•
11.7K views
Nutanixを支える技術 - How OSSes work in Nutanix
Satoshi Shimazaki
•
1.6K views
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
NTT DATA Technology & Innovation
•
233 views
アサヒのデータ活用基盤を支えるデータ仮想化技術
Denodo
•
1.6K views
ビッグデータ処理データベースの全体像と使い分け 2018年version
Tetsutaro Watanabe
•
21.2K views
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
Tetsutaro Watanabe
•
7K views
Hadoop -NameNode HAの仕組み-
Yuki Gonda
•
4.1K views
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
•
53K views
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
•
58.1K views
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
•
1.1K views
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
•
51.1K views
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
NTT DATA Technology & Innovation
•
1.9K views
Ceph アーキテクチャ概説
Emma Haruka Iwao
•
30.4K views
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
•
7.6K views
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
•
14.8K views
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
Amazon Web Services Japan
•
5.8K views
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
•
1.3K views
AWSで作る分析基盤
Yu Otsubo
•
7.3K views
Similar to リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
Insight Technology, Inc.
3.8K views
•
35 slides
Microsoft の深層学習への取り組み
Hirono Jumpei
279 views
•
80 slides
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Masahiro NAKAYAMA
889 views
•
132 slides
フューチャースタンダードCTO鈴木登壇 レバレジーズ「ヒカ☆ラボ」動画解析・IoT実践事例 (Jul. 4th, 2017)
Future Standard
1.3K views
•
55 slides
「Data Infrastructure at Scale 」#yjdsw4
Yahoo!デベロッパーネットワーク
584 views
•
15 slides
Hueによる分析業務の改善事例
Masahiro Kiura
2.9K views
•
16 slides
Similar to リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
(20)
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
Insight Technology, Inc.
•
3.8K views
Microsoft の深層学習への取り組み
Hirono Jumpei
•
279 views
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Masahiro NAKAYAMA
•
889 views
フューチャースタンダードCTO鈴木登壇 レバレジーズ「ヒカ☆ラボ」動画解析・IoT実践事例 (Jul. 4th, 2017)
Future Standard
•
1.3K views
「Data Infrastructure at Scale 」#yjdsw4
Yahoo!デベロッパーネットワーク
•
584 views
Hueによる分析業務の改善事例
Masahiro Kiura
•
2.9K views
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Hajime Sano
•
6.7K views
MonotaRO のデータ活用と基盤の過去、現在、未来
株式会社MonotaRO Tech Team
•
13.3K views
データをどこに溜めよう?ローカル?クラウド?どのデータベース?
- Core Concept Technologies
•
367 views
情報爆発シンポジウム infoplosion
Rakuten Group, Inc.
•
1.4K views
データ分析基盤を支えるエンジニアリング
Recruit Lifestyle Co., Ltd.
•
9.8K views
20190517 Spark+AI Summit2019最新レポート
Ryoma Nagata
•
1.2K views
1107 node学園祭スポンサーズトーク
Kazuya Fukumoto
•
601 views
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
Recruit Technologies
•
7.2K views
クラウド座談会資料
知礼 八子
•
2.2K views
NTT Communications' Initiatives to Utilize Infrastructure Data
DataWorks Summit
•
2.2K views
「リクルートデータセット」 ~公開までの道のりとこれから~
Recruit Technologies
•
2.2K views
クラウド時代のデータ連携 ~ そして少し SharePoint 連携事例 ~
CData Software Japan
•
2.2K views
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
法林浩之
•
1.1K views
Spark + AI Summit 2020セッションのハイライト(Spark Meetup Tokyo #3 Online発表資料)
NTT DATA Technology & Innovation
•
1.4K views
Recently uploaded
robotics42.pptx
Natsutani Minoru
165 views
•
18 slides
SSH超入門
Toru Miyahara
12 views
•
21 slides
AIで始めるRustプログラミング #SolDevHub
K Kinzal
20 views
•
25 slides
lt.pptx
tomochamarika
39 views
•
13 slides
3Dプリンタでロボット作るよ#1_黎明編
Yoshihiro Shibata
19 views
•
7 slides
how query cost affects search behavior translated in JP
Tobioka Ken
9 views
•
16 slides
Recently uploaded
(7)
robotics42.pptx
Natsutani Minoru
•
165 views
SSH超入門
Toru Miyahara
•
12 views
AIで始めるRustプログラミング #SolDevHub
K Kinzal
•
20 views
lt.pptx
tomochamarika
•
39 views
3Dプリンタでロボット作るよ#1_黎明編
Yoshihiro Shibata
•
19 views
how query cost affects search behavior translated in JP
Tobioka Ken
•
9 views
図解で理解するvetKD
ryoo toku
•
84 views
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
1.
リクルートライフスタイルの考える ストリームデータの活かし方 ~AWS + Kafka
+ Spark Streaming~ 車田 篤史 ネットビジネス本部 アーキテクト1グループ データ基盤チーム 堤 崇行 ITサービス・ペイメント事業本部 放送・情報サービス事業部 情報ビジネス統括部
2.
1. リクルートスタイルにおけるビッグデータとは 2. ビッグデータの過去・現在・未来 3.
Waterプロジェクトとは 4. ポンパレモールでの利用例 5. 技術詳細&ストリーム処理Tips 6. まとめ アジェンダ1
3.
• 車田 篤史(くるまだ
あつし) • 1999年 信号機メーカーで回路設計とか組込みLinuxやってました • 2011年 広告配信系のインフラ(HadoopとかDWH)をやってました • 2015年 リクルートライフスタイル入社 • データ基盤チームでビッグデータと日々向かい合っています • 趣味:カメラ、時計・万年筆・英国靴・オーディオ機器 https://www.facebook.com/atsushi.kurumada 自己紹介2
4.
会社紹介3
5.
堤 崇行 (つつみ
たかゆき) • 所属 – 株式会社NTTデータ • 経歴 – 2011年 Webアプリ開発者 – 2012年 データ活用(分析基盤、サーバーサイド開発) • 最近使っている技術 – Apache Spark, Ansible, Scala, Python, Haskell(趣味) 自己紹介4
6.
リクルートライフスタイル様の ビジネスパートナーとして データの価値創出や戦略を共に考え データ活用の世界観を共に描いていけるよう サポートしています。 会社紹介5
7.
リクルートライフスタイルのミッション6
8.
データ基盤チームの役割 Engineering for data Business with data エンジニアが ビジネスを推進する 安定したインフラ基盤
継続的な開発+ 7
9.
• 容量(Volume) – データ量の制限なく保存できる •
集約(Variety) – 多様なデータが1箇所に集まっている • 鮮度(Velocity) – 保存データをすぐに利用できる • 活用 – データを活用できなかったら意味が無い ビッグデータにおける普遍的テーマ8
10.
• 容量 – 日々増加し続けるデータ量 (数十TB規模に増加、行動ログは1,000億レコード規模) •
集約 – RDB/ファイル等にデータが点在している • 鮮度 – 集計処理に時間がかかる • 活用 – あまり活用できていない… リクルートライフスタイルの過去9
11.
現在の共通分析基盤 約300人の分析者 データサイエンティスト IBM Netezza Amazon Redshift TreasureData ETLフレームワーク 10
12.
容量:DWHを導入! 約300人の分析者 データサイエンティスト IBM Netezza Amazon Redshift TreasureData ETLフレームワーク 11
13.
集約:自作ETLフレームワーク! 約300人の分析者 データサイエンティスト IBM Netezza Amazon Redshift TreasureData ETLフレームワーク 12
14.
活用:統計ツール/BIツールの導入 約300人の分析者 データサイエンティスト IBM Netezza Amazon Redshift TreasureData ETLフレームワーク 13
15.
☆まだまだ課題はたくさん… 14
16.
• 集約 – レガシーなリソースからもデータが取得できる –
過去〜直近のデータも一様に取得できる – データハブ基盤が必要! • 鮮度 – リアルタイムにデータを集計・利用したい – ストリーム処理基盤が必要! Waterプロジェクトを立ち上げ! 乗り越えるべき課題15
17.
• 「蛇口をひねれば新鮮な水が出てくる」 • Kafkaを使用したデータハブ基盤の構築 •
Sparkを使用したストリーム処理基盤の構築 • 「データから創出できるサービス」を検討し、 エンジニアがビジネスに貢献する! Waterプロジェクトとは16
18.
vs ☆検証→開発→運用環境を即座に構築できる! ☆キャパシティ設計可能なサービスは便利! (DynamoDB/API Gateway等) 検討したもの(クラウド or
オンプレミス)17
19.
vs ☆コアテクノロジーについてはOSSを採用 ☆汎用性の高いハブ基盤を目指した! 検討したもの(データハブ基盤)18
20.
vs ☆ (MLlib等)コンポーネントが多い! ☆ 今後の展開を見据えてSpark
Streaming 検討したもの(ストリーム処理基盤)19
21.
Grand Design DynamoDB Lambda API Gateway Kafka on-premises Configuration Management Monitoring Grafana 20
22.
データハブ基盤 DynamoDB Lambda API Gateway on-premises Configuration Management Monitoring Grafana 21 Kafka
23.
ストリーム処理基盤 Lambda API Gateway on-premises Configuration Management Monitoring Grafana 22 Kafka DynamoDB
24.
データ提供部分(API) Kafka on-premises Configuration Management Monitoring Grafana 23 DynamoDB Lambda API Gateway
25.
• 鮮度の高いデータを活用することで創出できる サービス案を検討してみた – 「みんなが注目している」商品を知りたい! –
売り切れてしまう前に手に入れたい! – 興味を持っている(商品を見ている)人に伝えたい! ポンパレモール(ECサイト)上で 「xx人が見ています」をテストケースとして構築! ビジネス要件24
26.
ポンパレモールでの利用例25
27.
ポンパレモールでの利用例26 ウインドウ期間を設定可能!
28.
ちなみに効果は? • A/Bテストの結果、 ☆104%(スマホ) ☆115%(PC) 27
29.
☆技術詳細&ストリーム処理Tips! 28
30.
技術詳細 & Tips DynamoDB
Lambda API Gateway Kafka on-premises Grafana 2. 入力 3. ストリーム処理 4. 出力 5. モニタリング 1. アーキテクチャ
31.
アーキテクチャ DynamoDB Lambda API Gateway Kafka Web
Server Grafana on-premise Customers Cloud 30 入力 処理 データ ストア 出力
32.
Cloud Customerson-premise 入力 DynamoDB Lambda API Gateway Configuration Management Monitoring Grafana 31 Kafka Web
Server
33.
オンプレからクラウドへデータ連携 Spark Streamingを活かす入力 Secure Forward Web Server Kafka On-premises
Cloud 32 KafkaDirect API
34.
fluentd-Kafka連携のチューニングポイント Spark Streamingを活かす入力 Web Server Kafka 33 要チューニング
35.
今後 よりシンプルなアーキテクチャ Spark Streamingを活かす入力 Web Server Kafka Version
UP 34
36.
on-premise Customers Cloud ストリーム処理 Lambda API Gateway Web
Server Configuration Management Monitoring Grafana 35 DynamoDBKafka
37.
パーティション数 36 Spark Streaming
Tips Kafka スループット確保 • Sparkからみると 多いことも 各パーティションで扱う データ量調整 • 集計処理に合わせて リパーティション
38.
ログ設定 37 Spark Streaming
Tips Log Log ログ出力の定常的なチューニングが必要 • ローテーション • パージタイミング • エラーレベル 記憶域を 圧迫 とは要求レベルが異なるので別管理 新 詳細に残す 古 捨てる メトリクスは別途残す
39.
• Spark Streamingアプリの開発 –
理想 • 開発者のPCで実装・デバッグができる • テスト環境で本番同様に実行できる – 現実 • スペック不足による停止か環境問題か判別が難しい • 本番相当のテストまで問題を回収しきれない – 対策 • ロジックテストとシステムテストを切り分ける – ロジック部のテストができるよう関数化する – システムテストはAWSで本番同等の環境を用意する Spark Streaming活用時のポイント38
40.
• ストリーム処理を動かし続けるポイント – 理想 •
ストリーム処理は止まらず稼働を続ける – 現実 • Spark外の入出力部分起因のエラーも発生 • 1つ1つのエラーに対応すると 処理が終わらなくなり全体が停止する – 対策 • ストリーム処理向けエラーハンドリング – 握りつぶすエラーと 対応するエラーを選別する Spark Streaming活用時のポイント39 1224 h + 1111 Jobs !
41.
• 動き続けるストリーム処理の定義 – 理想 •
ストリーム処理は止まらず稼働を続ける – 現実 • 停止は発生する • ストリーム処理の停止とシステム全体の停止は異なる – 対策 • ビジネス要件を満たす稼働状況を定義し 影響を小さくするアーキテクチャにする – 情報鮮度の許容範囲を定める – ストリーム処理停止を出力部の停止に伝搬させない Spark Streaming活用時のポイント40
42.
今後 バッチタイプとの統合 Spark Streaming活用41 バッチ ストリーム Data Store
43.
on-premise Customers Cloud 出力 Kafka Web Server Configuration Management Monitoring Grafana 42 DynamoDB
Lambda API Gateway
44.
ストリーム処理と出力の独立性 Spark Streamingを活かす出力 データストア Web
API アクセス 不可状態 処理停止 API 停止 アクセス 不可状態 高負荷 による停止 正常稼動 正常稼動 API 停止 正常稼動処理停止 正常稼動 正常稼動 43
45.
アーキテクチャのメリット / デメリット 44
Spark Streamingを活かす出力 DynamoDB Lambda API Gateway メリット シームレスなスケーリング データストア〜APIで透過的にインスタンスがなく運用が楽 低コスト(特にLambda + API Gateway) デメリット テスト環境の作りにくさ 多様な形式・フォーマットへの対応の難しさ
46.
• データストアとしてDynamoDBを選んだ理由 – データをUpdateする実装のため 書き込みと呼び出し常時発生 –
Web APIのレスポンスを考慮すると 一貫性よりもスループットを重視 • 工夫点 – DynamoDBは平準的な アクセスが得意 • 書き込み量に耐え切れない時 エラーは握りつぶして次へ • 動的にDynamoDBの キャパシティを設定 Spark Streamingを活かす出力 DynamoDB 45 動的にキャパシティを変更 書き込み失敗 Update その後 書き込みは成功
47.
今後 Spark Streamingを活かす出力 DynamoDB 46 Lambda API
Gateway 他データストア対応 APIの柔軟性向上 Web Application データストア データアクセス
48.
on-premise Customers Cloud 運用設計(モニタリング) DynamoDB Lambda
API Gateway Kafka Web Server Configuration Management 47 Monitoring Grafana
49.
時系列DBを利用した性能の観測・可視化 運用設計48 Grafana Dashboards AWS
CloudWatch Dashboards DynamoDB Lambda API Gateway Kafka
50.
今後 運用設計49 Grafana DynamoDB Lambda API Gateway Kafka メトリクスの集約 観測・予測によるオートスケール Cluster Cluster
51.
振り返り • 少人数で機動力持って出来た! – 検証を重ねるべき部分は時間をかけつつ、短期で作り上げた •
「なかったら作る」の姿勢 – プロダクトとプロダクトの隙間は自分で埋める • OSSに対する取り組み – コアテクノロジーはOSSを使い、とことん性能検証 • AWSを選んだ理由 – 「AWSを使いこなす」はゴールではない – スケーラブルなインフラ&汎用的なサービスは使っていく • 性能観測についての取り組み – OSSを選択した以上、性能に対する取り組みは非常に重要 – 各種メトリクスを利用していく事で改善に取り組んだ 50
52.
• まだ道は半ばです! • やってみたいこと –
データソースを増やしてハブ化を推進! – 横展開 – 新しいサービスを作りたい! – 基盤を使ってサービス完成までの時間を短縮したい! • エンジニアがビジネスを創出する環境を作る! これから51
53.
WE ARE HIRING!52
54.
ご清聴ありがとうございました 53
Editor's Notes
それでは、リクルートライフスタイルが、どのようなミッションを持って事業を行っているか、をお伝えしたいと思います。 「ちょっとした毎日を提供し、ひとりひとりの生活を豊かにする。 それが、リクルートライフスタイルの願いです」 私たちデータ基盤チームは、ビッグデータで支えるべく、日々改善に取り組んでいます。