More Related Content
Similar to BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ (20)
BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ
- 1. © 2016 IBM Corporation
2017年 改めてApache Sparkとデータサイ
エンスの関係についてのまとめ
Tanaka Y.P
2017-1-27
- 2. © 2016 IBM Corporation2
自己紹介
田中裕一(yuichi tanaka)
主にアーキテクチャとサーバーサイドプログラムを担当
することが多い。Hadoop/Spark周りをよく触ります。
Node.js、Python、最近はSpark周りの仕事でScalaを書く
ことが多い気がします。
休日はOSS周りで遊んだり。
詳解 Apache Spark
- 4. © 2016 IBM Corporation4
アジェンダ
• 改めてSparkとはどんなフレームワークなのか?
• Sparkはどのように動くのか?
• SparkでMachiLearning
• 従来の課題は何か、Sparkがなぜマッチするのか
• 2016年Sparkを利用する環境はどうなったか?
• SparkでDeepLearningはどうか?
• Sparkを取り巻く環境のまとめ
- 5. © 2016 IBM Corporation5
Sparkとは
従来Hadoopでは難しかったBigDataにおける
アドホック分析やニアリアルタイム処理を実現するための
InMemory分散並列処理フレームワーク。
• HDFSを筆頭にCassandraなど分散ストレージのデータと相性が良い
• YARN,Mesos,Standaloneの3種類の分散処理基盤の上で動作
• SparkSQL,Streaming,MLlib,GraphXといった処理の拡張を持つ
- 6. © 2016 IBM Corporation6
Sparkはどう動くのか?
Sparkとは
RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク
Driver Program
Worker Worker Worker
ProgramProgramProgram
DataDataData
- 7. © 2016 IBM Corporation7
Driver Program
Worker Worker Worker
ProgramProgramProgram
DataDataData
Sparkはどう動くのか?
Sparkとは
RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク
- 8. © 2016 IBM Corporation8
Driver Program
Worker Worker Worker
ProgramProgramProgram
DataDataData
output output output
Sparkはどう動くのか?
Sparkとは
RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク
- 9. © 2016 IBM Corporation9
WorkerNode
WorkerNode
WorkerNode
Partition0
Partition3
Partition1
Partition2
6,tanaka,532
1,tanaka,100
2,tanaka,300
3,tsuchiya,50
4,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はどう動くのか?
- 10. © 2016 IBM Corporation10
Sparkまとめ
• Sparkではレイテンシが重要なアドホックな分析やニアリアルタイムな分析が可能
• 複数のStorageからデータを集めて処理するなどStorageに依存しない
• ただしローカリティのメリットはなくなる
• たくさんのデータに対して一度に処理を行うことはとても得意
• 機械学習など同じデータに対して繰り返し処理を行うものが得意
- 11. © 2016 IBM Corporation11
SparkでMachineLearning
• MLlibは大きく2つの実装に分かれる
• spark.mllib
• spark.ml
• どちらを使えば良いか?
• spark.mlを使うこと!
• spark.mllibは2系でメンテモードになりました。
• 今後新しい機能は追加されません。タブン
• (予定では3.0でremoveされる)
- 12. © 2016 IBM Corporation12
SparkでMachineLearning
• そもそもMachineLearningとは
• データから新たな価値を見出すための手法の一つ
• MachineLearningでは前処理が重要
• 前処理8割といわれる程、データサイエンスの占める作業のうち、大部分がこの作業
• 前処理の例
• フィールドのコード化(性別変換・カテゴリ変換)
• ID変換(Join,CookieSync,ジオコーディング)
• 集計(GroupBy,Sum,Max,Min)
• 形態素解析系処理(構文解析、分かち書き、ストップワード)
• 名寄せ(表記ゆれ)
• クレンジング(無効値処理、欠損値補完、外れ値補正)
• 画像系処理(特徴抽出、スライス、サイズ変換、グレースケール)
• 背景
データは分析されることを前提としていない。こう言った配慮は事業において負荷となる
- 13. © 2016 IBM Corporation13
HDFS
従来の課題は何か、Sparkがなぜマッチするのか
• こうした多様な前処理は従来のHadoop Ecosystemでの実現は難しかった
CSV
ETL
中間
DB
Table
中間
MLETL
中間 モデル
APP
Memory
CSV
ETL
DF
DF
Table
DF
MLETL
DF モデル
Streaming
- 14. © 2016 IBM Corporation14
Sparkを利用する環境はどうなったか?
• 15,16年とSparkをCloudで動かす環境が整ってきた
• より手軽にデータサイエンスを試せる土壌
EMR HDInsight DataProc BigInsights
• Sparkでデータサイエンスを行うI/Fは何が良いのか?
DataLab DataScienceExperience
なし
※DataProcと未統合
- 15. © 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上でも様々な記事が上がっていますが、すでにメンテされてないリポジトリも
あるので選定する際は注意が必要
- 16. © 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
分割
パラ
メータ
配布
分割
モーメンタム
rmsprop
adagrad
なども
Parameter
Average
再度Diverに戻し、
次のデータを同様に処理する
データを設定に基づいて分割
- 17. © 2016 IBM Corporation17
Sparkを取り巻く環境のまとめ
• MLlibだけでなく前処理やデータのつなぎの部分でもSparkは重要
• 各Cloud業者がデータサイエンティストのためのCloud環境を提供開始
• 従来のエンジニア向けのCloudではなく
• DeepLearningを分散処理するための基盤としてSparkへの対応が進んでる
• 深層学習だけでなく、「データサイエンス基盤」としてもSparkは重要
• その他の機械学習の機能もSparkの対応が始められている
Editor's Notes
- 1
- 会社ではSparkとHadoopのスペシャリストやってます。
- 会社ではSparkとHadoopのスペシャリストやってます。
- おさらい1ページ
- Jupyterが鉄板っぽい。