sparkを用いたビッグデータ解析 〜 前編 〜

Post on 16-Jul-2015

4.057 Views

Category:

Technology

11 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sparkを用いた ビッグデータ解析

~ 前編 ~

株式会社サイバーエージェント 井上 ゆり

自己紹介 >

井上 ゆり 株式会社サイバーエージェント

アドテク本部 AMoAd所属

twitter: @iyunoriue

GitHub: x1-

HP: バツイチとインケンのエンジニアブログ http://x1.inkenkun.com/

2

本日の発表内容

3

1. Apache Sparkって何?

2. Hadoopと何が違うの?

3. AMoAdではSparkで何してるの?

4. 分析ツール:Apache ZeppelinとiPython Notebook

5. Sparkゼミの取り組み

Apache Sparkって何?

Sparkの特徴その1

DAGベースの汎用並列処理エンジン ※DAG = Directed Acyclic Graph = 有向非循環グラフ

一連の処理をDAGで表現 エンジンの基本部分は汎用的なMapReduce

5

HadoopのMapReduceに比べて100倍速い。

ロジスティック回帰の速度比較

Sparkの特徴その2

RDDによるデータ共有機構 ※RDD = Resilient Distributed Dataset = 不変で分散処理可能なデータセット

RDDの特徴

6

• 不変(イミュータブル)である • パーティション分割され、各サーバー上に分散配置される • インメモリ(可能なかぎり) • 遅延実行

DAG & RDDの恩恵

・繰り返し処理(DAG)をメモリ上に保持

 効率的な反復アルゴリズム

・メモリ内の作業データセット(RDD)をキャッシュ

 低レイテンシの計算

7

Hadoopと何が違うの?

MapReduceでWord Count

9

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor

incididunt ut labore et

dolore magna aliqua Ut enim ad minim veniam, quis nostrud exercitation ullamco

lorem 2lorem 1 ipsum 1 dolor 1

lorem 1 lorem 1

sit 1 amet 1 consect.. 1

do 1 eiusmod 1 tempor 1

adipisic.. 1 elit 1 sed 1

ipsum 1 ipsum 1 ipsum 1

dolor 1

ipsum 3

sit 1 sit 1 sit 1

dolor 1

sit 3

map shuffle reduce result

lorem 2 ipsum 3 dolor 1 sit 3 :

MapReduceでWord Count

10

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor

incididunt ut labore et

dolore magna aliqua Ut enim ad minim veniam, quis nostrud exercitation ullamco

lorem 2lorem 1 ipsum 1 dolor 1

lorem 1 lorem 1

sit 1 amet 1 consect.. 1

do 1 eiusmod 1 tempor 1

adipisic.. 1 elit 1 sed 1

ipsum 1 ipsum 1 ipsum 1

dolor 1

ipsum 3

sit 1 sit 1 sit 1

dolor 1

sit 3

map shuffle reduce result

lorem 2 ipsum 3 dolor 1 sit 3 :

(hadoopの場合)

・中間結果をディスクに書き出す ・正格評価 → 逐次計算

MapReduceでWord Count

11

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor

incididunt ut labore et

dolore magna aliqua Ut enim ad minim veniam, quis nostrud exercitation ullamco

lorem 2lorem 1 ipsum 1 dolor 1

lorem 1 lorem 1

sit 1 amet 1 consect.. 1

do 1 eiusmod 1 tempor 1

adipisic.. 1 elit 1 sed 1

ipsum 1 ipsum 1 ipsum 1

dolor 1

ipsum 3

sit 1 sit 1 sit 1

dolor 1

sit 3

map shuffle reduce result

lorem 2 ipsum 3 dolor 1 sit 3 :

(sparkの場合)

RDDDAG

・中間結果はメモリにキャッシュ ・遅延評価 → 計算量最適化

RDD RDD RDD

AMoAdでは、 Sparkで何してるの?

AMoAd = アドネットワーク

広告配信

数十億レコードのログ/日

13

集計もアドホックな分析もしたい。 リアルタイムに。

AMoAd = アドネットワーク

広告配信

数十億レコードのログ/日

14

集計&アドホックな分析

実は・・・

ログは

GoogleCloudStorage に集めています。

15

GCS上のログをSparkで集計&分析しています。

16

こんな風にクラスタ構成しています。

17

アドホックな分析環境その1

Apache Zeppelin SparkにWebUI機能を提供するnotebook形式のデータ分析ツール。 https://zeppelin.incubator.apache.org/

→ 気軽にデータをビジュアライゼーションするのに使っています。

18

Zeppelin

Zeppelin

20

アドホックな分析環境その2

iPython Notebook Pythonの対話実行をWebからインタラクティブに行うことのできるツール。PySparkはiPythonに対応している。 http://ipython.org/

 → より複雑な分析を行ったり、統計情報を扱う目的で使っています。

21

iPython Notebook

iPython Notebook

23

サイバーエージェント・アドテク本部

Sparkゼミの取り組み

サイバーエージェント・アドテク本部では

Sparkゼミ という取り組みを行っています。

25

日々の業務で培ったScala力を活かし、神田勝規塾長の元、7人のメンバーでひたすらApache Sparkへのコントリビュートを行ってきました。

26

このあと発表する谷口

私です塾長

結果、Spark1.3.0にコントリビュートしました!!

https://spark.apache.org/releases/spark-release-1-3-0.html27

~~

このあと発表する谷口

28

https://issues.apache.org/jira/browse/SPARK-5094

29

私もコントリビュートしました

自分でissueあげて修正した福原氏

https://issues.apache.org/jira/browse/SPARK-5618

https://issues.apache.org/jira/browse/SPARK-5320

まだまだ未知の領域の多いApache Spark。

Sparkゼミでは、Sparkの良いユーザであるとともに、コントリビュータの一員としてSparkを育てていきたいと考えています。

30

top related