Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Spark x Solrによるリアルタイムト
レンド抽出の具体的手法
飛び込み用
今作った
R&Dちーむ: tanaka.yuichi
自己紹介とか
金融系・組み込み系・コミュニティサービス・ゲーム・広告等の各システムを経てDMMへ。
DMM.comラボにおいて、検索システムの刷新、レコメンドエンジンの新規開発など、基
盤技術の開発を担当しております。
サーバーサイド、フロント...
CTO室ってなんだ?
新しい技術の取り込み
研究開発とか
技術サポートとか
対外活動とか
どんな事やってるのかの話
取り組みのコンセプト
ユーザーの行動ログや商品データ、ソーシャルデータからニーズ
にマッチした商品・広告・コンテンツの提供を行う
売り上げの最大化・パイの最大化・隠れた需要の掘り起こし
大規模データの解析・機械学習によ...
リアルタイムレコメンドのおさらい
リアルタイムレコメンドのおさらい
今回主につかったもの
• Apache Spark
• SparkStreaming
• GraphX
• SparkMLlib
• Apache Solr
Sparkの丁寧な説明
Apache Spark?
高速に大規模データ処理を行うエンジン
SparkCoreについての説明
Cluster Manager
Yarn
Mesos
Data Source
Stream
HDFS
SparkRDDsの説明
SparkではRDDsという単位でデータを扱います。
val test = sc.textFile("/tmp/sample.txt")
これRDD
test.count このRDDに対して
count
take
co...
SparkDStreamの説明
RDDsのまとまりをDStreamとして扱います
RDDと似た関数を持っていて、下記のようなStreamデータを
n秒で分けてバッチ処理をする仕組み
SparkStreamingのWindowOperation説明
Tweet10
Tweet9
Tweet8
Tweet7
Tweet6
Tweet5
Tweet4
Tweet3
Tweet2
Tweet1
時間
DStream
1秒
DStr...
まとめ
Sparkで問題になりやすい部分
1. 完全に分散処理させるためのハードルが高い(アーキテクト的に)
1. HDFS、YARNの構築・設定が終わってる事前提
2. Sparkのrequirementだけじゃなくてトータルで考える必要があ...
以上
リアルタイムトレンド抽出飛び込み用
Upcoming SlideShare
Loading in …5
×

リアルタイムトレンド抽出飛び込み用

695 views

Published on

2015/08/23 Talk Live in Summer 2015 at DMM.com Laboで発表した内容です。

Published in: Technology
  • Be the first to comment

リアルタイムトレンド抽出飛び込み用

  1. 1. Spark x Solrによるリアルタイムト レンド抽出の具体的手法 飛び込み用 今作った R&Dちーむ: tanaka.yuichi
  2. 2. 自己紹介とか 金融系・組み込み系・コミュニティサービス・ゲーム・広告等の各システムを経てDMMへ。 DMM.comラボにおいて、検索システムの刷新、レコメンドエンジンの新規開発など、基 盤技術の開発を担当しております。 サーバーサイド、フロントエンド、ミドルウェア、インフラと領域問わず、提案から構築・実 装まで幅広くやらせてもらっています。その他OSSのcontributor等もやっております。 株式会社 DMM.comラボ CTO室
  3. 3. CTO室ってなんだ? 新しい技術の取り込み 研究開発とか 技術サポートとか 対外活動とか
  4. 4. どんな事やってるのかの話 取り組みのコンセプト ユーザーの行動ログや商品データ、ソーシャルデータからニーズ にマッチした商品・広告・コンテンツの提供を行う 売り上げの最大化・パイの最大化・隠れた需要の掘り起こし 大規模データの解析・機械学習によるデータを元にしたアプローチ 前段 ミッション やる事
  5. 5. リアルタイムレコメンドのおさらい
  6. 6. リアルタイムレコメンドのおさらい 今回主につかったもの • Apache Spark • SparkStreaming • GraphX • SparkMLlib • Apache Solr
  7. 7. Sparkの丁寧な説明 Apache Spark? 高速に大規模データ処理を行うエンジン
  8. 8. SparkCoreについての説明 Cluster Manager Yarn Mesos Data Source Stream HDFS
  9. 9. SparkRDDsの説明 SparkではRDDsという単位でデータを扱います。 val test = sc.textFile("/tmp/sample.txt") これRDD test.count このRDDに対して count take collect map filter といった処理を行います
  10. 10. SparkDStreamの説明 RDDsのまとまりをDStreamとして扱います RDDと似た関数を持っていて、下記のようなStreamデータを n秒で分けてバッチ処理をする仕組み
  11. 11. SparkStreamingのWindowOperation説明 Tweet10 Tweet9 Tweet8 Tweet7 Tweet6 Tweet5 Tweet4 Tweet3 Tweet2 Tweet1 時間 DStream 1秒 DStream 2秒 DStream 3秒 DStream 4秒 DStream
  12. 12. まとめ Sparkで問題になりやすい部分 1. 完全に分散処理させるためのハードルが高い(アーキテクト的に) 1. HDFS、YARNの構築・設定が終わってる事前提 2. Sparkのrequirementだけじゃなくてトータルで考える必要がある 3. メモリ馬鹿喰いする 2. プログラムが作り辛い 1. Standalonモードだと分散処理にしたとき転ける事が多い 2. yarn-clientモードでもdriverをclusterにしたときに転けたりする 3. じゃぁ、分散でやれば良いかと言うと、分散するとデバッグが難しい SparkStreamingで問題になりやすい部分 1. 途中で止める方法がない 1. 通常のSparkプログラムとCluster上での動作が違う 2. graceful-stopはプログラム側で実装しないとダメ 3. Streamingの性質上、データロストの対策を考えないとダメ 4. プログラムの差し替えの方法を考えないとダメ 5. どうやって運用するかは課題が山積み
  13. 13. 以上

×