bigdataunivercity 2017年改めてapache...

18
© 2016 IBM Corporation 2017 年 年年年 Apache Spark 年年年年年年年年年 年年年年年年年年年年年 Tanaka Y.P 2017-1-27

Upload: tanaka-yuichi

Post on 07-Feb-2017

23 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation

2017 年 改めて Apache Spark とデータサイエンスの関係についてのまとめ

Tanaka Y.P2017-1-27

Page 2: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation2

自己紹介田中裕一( yuichi tanaka)主にアーキテクチャとサーバーサイドプログラムを担当することが多い。 Hadoop/Spark周りをよく触ります。Node.js、 Python、最近は Spark周りの仕事で Scalaを書くことが多い気がします。

休日は OSS 周りで遊んだり。

詳解 Apache Spark

Page 3: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation3

自己紹介

Page 4: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation4

アジェンダ

• 改めて Spark とはどんなフレームワークなのか?

• Spark はどのように動くのか?

• Spark で MachiLearning

• 従来の課題は何か、 Spark がなぜマッチするのか

• 2016 年 Spark を利用する環境はどうなったか?

• Spark で DeepLearning はどうか?

• Spark を取り巻く環境のまとめ

Page 5: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation5

Spark とは

従来 Hadoop では難しかった BigData におけるアドホック分析やニアリアルタイム処理を実現するためのInMemory 分散並列処理フレームワーク。

• HDFS を筆頭に Cassandra など分散ストレージのデータと相性が良い• YARN,Mesos,Standalone の3種類の分散処理基盤の上で動作• SparkSQL,Streaming,MLlib,GraphX といった処理の拡張を持つ

Page 6: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation6

Spark はどう動くのか?Spark とはRDD と DAG をコアコンセプトとして設計された分散並列処理フレームワーク

Driver Program

Worker Worker Worker

ProgramProgramProgram

DataDataData

Page 7: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation7

Driver Program

Worker Worker Worker

ProgramProgramProgramDataDataData

Spark はどう動くのか?Spark とはRDD と DAG をコアコンセプトとして設計された分散並列処理フレームワーク

Page 8: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation8

Driver Program

Worker Worker Worker

ProgramProgramProgramDataDataData

output output output

Spark はどう動くのか?Spark とはRDD と DAG をコアコンセプトとして設計された分散並列処理フレームワーク

Page 9: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation9

WorkerNode

WorkerNode

WorkerNode

Partition0

Partition3

Partition1

Partition2

6,tanaka,532

1,tanaka,1002,tanaka,300

3,tsuchiya,504,kaijima,2000

5,tsuchiya,1320

Partition0

Partition3

(tanaka,100)(tanaka,300)

(tanaka,532)

Partition1(tsuchiya,50)(kaijima,2000)

Partition2(tsuchiya,1320)

Partition0(tanaka,932)

Partition2(kaijima,2000)

Partition1(tsuchiya,1370)

Stage0 Stage1

task0

task1

task2

task3

task4

task5

task6

Spark はどう動くのか?

Page 10: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation10

Spark まとめ

• Spark ではレイテンシが重要なアドホックな分析やニアリアルタイムな分析が可能

• 複数の Storage からデータを集めて処理するなど Storage に依存しない

• ただしローカリティのメリットはなくなる

• たくさんのデータに対して一度に処理を行うことはとても得意

• 機械学習など同じデータに対して繰り返し処理を行うものが得意

Page 11: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation11

Spark で MachineLearning

• MLlib は大きく2つの実装に分かれる• spark.mllib• spark.ml

• どちらを使えば良いか?• spark.ml を使うこと!• spark.mllib は 2 系でメンテモードになりました。

• 今後新しい機能は追加されません。タブン• ( 予定では 3.0 で remove される )

Page 12: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation12

Spark で MachineLearning

• そもそも MachineLearning とは• データから新たな価値を見出すための手法の一つ

• MachineLearning では前処理が重要• 前処理8割といわれる程、データサイエンスの占める作業のうち、大部分がこの作業

• 前処理の例• フィールドのコード化(性別変換・カテゴリ変換)• ID 変換( Join,CookieSync, ジオコーディング)• 集計( GroupBy,Sum,Max,Min )• 形態素解析系処理(構文解析、分かち書き、ストップワード)• 名寄せ(表記ゆれ)• クレンジング(無効値処理、欠損値補完、外れ値補正)• 画像系処理(特徴抽出、スライス、サイズ変換、グレースケール)

• 背景データは分析されることを前提としていない。こう言った配慮は事業において負荷となる

Page 13: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation13

HDFS

従来の課題は何か、 Spark がなぜマッチするのか• こうした多様な前処理は従来の Hadoop Ecosystem での実現は難しかった

CSV

ETL

中間DB

Table

中間

MLETL

中間 モデル

APP

Memory

CSV

ETL

DFDF

Table

DF

MLETL

DF モデル

Streaming

Page 14: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation14

Spark を利用する環境はどうなったか?

• 15,16 年と Spark を Cloud で動かす環境が整ってきた• より手軽にデータサイエンスを試せる土壌

EMR HDInsight DataProc BigInsights

• Spark でデータサイエンスを行う I/F は何が良いのか?DataLab DataScienceExperience

なし

※DataProc と未統合

Page 15: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation15

Spark で DeepLearning はどうか?

• MLlib だけでは DeepLearning は難しい(多層パーセプトロンはある)• Spark v2.1 でも難しい

• 16 年に各 DL フレームワークが Spark に対応• DL4J on Spark : https://deeplearning4j.org/• Caffe on Spark : https://github.com/yahoo/CaffeOnSpark• TensorSpark(Tensorflow on Spark) : https://github.com/adatao/tensorspark• Distributed Keras : https://github.com/cerndb/dist-keras• Sparkling Water : https://github.com/h2oai/sparkling-water/tree/rel-2.0

その他にも雨後の筍のように。

※Web 上でも様々な記事が上がっていますが、すでにメンテされてないリポジトリもあるので選定する際は注意が必要

Page 16: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation16

DeepLearning4J を例に Spark 上での DL を見てみる

Driver

Worker

Worker

Worker

Worker

Worker

Data d1 d2 ・・

1−1 1−2 1−3 1−4 1−5

分割

パラメータ配布

分割

モーメンタム rmspropadagradなども

Parameter Average

再度 Diver に戻し、次のデータを同様に処理する

データを設定に基づいて分割

Page 17: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation17

Spark を取り巻く環境のまとめ

• MLlib だけでなく前処理やデータのつなぎの部分でも Spark は重要

• 各 Cloud 業者がデータサイエンティストのための Cloud 環境を提供開始

• 従来のエンジニア向けの Cloud ではなく

• DeepLearning を分散処理するための基盤として Spark への対応が進んでる

• 深層学習だけでなく、「データサイエンス基盤」としても Spark は重要

• その他の機械学習の機能も Spark の対応が始められている

Page 18: BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ

© 2016 IBM Corporation18

宣伝