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

More Related Content

What's hot

初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜Tanaka Yuichi
 
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016Tatsuya Atsumi
 
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析Pysparkで始めるデータ分析
Pysparkで始めるデータ分析Tanaka Yuichi
 
本当にあったApache Spark障害の話
本当にあったApache Spark障害の話本当にあったApache Spark障害の話
本当にあったApache Spark障害の話x1 ichi
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~NTT DATA OSS Professional Services
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-LINE Corp.
 
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
Apache cassandraと apache sparkで作るデータ解析プラットフォームApache cassandraと apache sparkで作るデータ解析プラットフォーム
Apache cassandraと apache sparkで作るデータ解析プラットフォームKazutaka Tomita
 
Spark Summit 2015 参加報告
Spark Summit 2015 参加報告Spark Summit 2015 参加報告
Spark Summit 2015 参加報告Katsunori Kanda
 
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpHBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpFwardNetwork
 
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析Yosuke Mizutani
 
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのsparkRyuji Tamagawa
 
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)Junichi Noda
 
SparkやBigQueryなどを用いた モバイルゲーム分析環境
SparkやBigQueryなどを用いたモバイルゲーム分析環境SparkやBigQueryなどを用いたモバイルゲーム分析環境
SparkやBigQueryなどを用いた モバイルゲーム分析環境yuichi_komatsu
 
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~The Japan DataScientist Society
 
Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版Atsushi Tsuchiya
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウFuture Of Data Japan
 

What's hot (20)

Jjug ccc
Jjug cccJjug ccc
Jjug ccc
 
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
 
Apache Sparkの紹介
Apache Sparkの紹介Apache Sparkの紹介
Apache Sparkの紹介
 
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
 
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
 
本当にあったApache Spark障害の話
本当にあったApache Spark障害の話本当にあったApache Spark障害の話
本当にあったApache Spark障害の話
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
 
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
Apache cassandraと apache sparkで作るデータ解析プラットフォームApache cassandraと apache sparkで作るデータ解析プラットフォーム
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
 
Spark Summit 2015 参加報告
Spark Summit 2015 参加報告Spark Summit 2015 参加報告
Spark Summit 2015 参加報告
 
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpHBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
 
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
 
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
 
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
 
SparkやBigQueryなどを用いた モバイルゲーム分析環境
SparkやBigQueryなどを用いたモバイルゲーム分析環境SparkやBigQueryなどを用いたモバイルゲーム分析環境
SparkやBigQueryなどを用いた モバイルゲーム分析環境
 
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
 
Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版
 
Spark MLlibではじめるスケーラブルな機械学習
Spark MLlibではじめるスケーラブルな機械学習Spark MLlibではじめるスケーラブルな機械学習
Spark MLlibではじめるスケーラブルな機械学習
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
 

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

ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingchibochibo
 
20190517 Spark+AI Summit2019最新レポート
20190517 Spark+AI Summit2019最新レポート20190517 Spark+AI Summit2019最新レポート
20190517 Spark+AI Summit2019最新レポートRyoma Nagata
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)NTT DATA OSS Professional Services
 
20170622 Moved to Azure PaaS
20170622 Moved to Azure PaaS20170622 Moved to Azure PaaS
20170622 Moved to Azure PaaS康平 秋山
 
Databricks の始め方
Databricks の始め方Databricks の始め方
Databricks の始め方Ryoma Nagata
 
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜x1 ichi
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...Amazon Web Services Japan
 
Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏鉄平 土佐
 
個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる
個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる
個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみるEiji Shinohara
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア leverages_event
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニアヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニアIsamu Suzuki
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!Nagato Kasaki
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Hadoop / Spark Conference Japan
 
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselKei Nakazawa
 
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)Junichi Noda
 

Similar to BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ (20)

ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
 
What makes Apache Spark?
What makes Apache Spark?What makes Apache Spark?
What makes Apache Spark?
 
20190517 Spark+AI Summit2019最新レポート
20190517 Spark+AI Summit2019最新レポート20190517 Spark+AI Summit2019最新レポート
20190517 Spark+AI Summit2019最新レポート
 
Hadoopとは
HadoopとはHadoopとは
Hadoopとは
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
 
20170622 Moved to Azure PaaS
20170622 Moved to Azure PaaS20170622 Moved to Azure PaaS
20170622 Moved to Azure PaaS
 
Databricks の始め方
Databricks の始め方Databricks の始め方
Databricks の始め方
 
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
Apache Spark + Arrow
Apache Spark + ArrowApache Spark + Arrow
Apache Spark + Arrow
 
Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏
 
個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる
個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる
個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニアヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
 
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
 
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
 
Spring Cloud Data Flow の紹介 #streamctjp
Spring Cloud Data Flow の紹介  #streamctjpSpring Cloud Data Flow の紹介  #streamctjp
Spring Cloud Data Flow の紹介 #streamctjp
 

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
  • 3. © 2016 IBM Corporation3 自己紹介
  • 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の対応が始められている
  • 18. © 2016 IBM Corporation18 宣伝

Editor's Notes

  1. 1
  2. 会社ではSparkとHadoopのスペシャリストやってます。
  3. 会社ではSparkとHadoopのスペシャリストやってます。
  4. おさらい1ページ
  5. Jupyterが鉄板っぽい。