SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Spot	
  Instance	
  +	
  Spark	
  +	
  
MLlib	
  
で実現する簡単低コスト	
  
高速機械学習	
 
@yamakatu	
  
AWS	
  Casual	
  Talks#2	
  
2014/4/18
おまだれ	
 
•  @yamakatu	
  
•  お仕事:検索方面	
  
•  自称フルスタックイクメンエンジニア	
  
•  開発、インフラ、機械学習、統計、検索、育児	
  
•  gihyo.jp	
  連載「Mahoutで体感する機械学習の実践」	
  
•  合言葉は「読まずにはてブだけして」	
  
	
  
What’s	
  Spark	
 
の前にHadoopの話
Hadoopが苦手とする処理	
 
•  オンライン処理(リアルタイム性)	
  
•  バッチ処理で使おう	
  
•  繰り返し処理	
  
•  ?	
  
繰り返し処理@Hadoop?	
 
•  ここで言うところの繰り返し処理	
  
•  一般的に言うところの「繰り返し処理」というよりも	
  
•  前回の計算結果を次の計算で利用するような繰り返し処理	
  
HDFS➡Map➡Shuffle➡Reduce➡HDFS	
  
HDFS➡Map➡Shuffle➡Reduce➡HDFS	
  
HDFS➡Map➡Shuffle➡Reduce➡HDFS	
  
Why	
  ?	
 
•  Disk	
  I/O	
  
1.  前回の出力をHDFS経由で入力値として受け取る	
  
•  そのまま持っとけよ。。。	
  
2.  さらにMap処理の出力は各ノードのローカルディスク	
  
•  バッファからあふれた分だけだっけ?	
  
•  タスク処理の準備にかかる時間	
  
1.  JVMの起動コスト	
  
•  TaskTrackerはmap/reduceタスクごとに子プロセスを起動	
  
	
  
2.  TaskTrackerへのタスク割当間隔	
  
•  Heartbeatでスロットの空き数を通知	
  
➡最大でHeartbeat間隔の時間だけ何もしないスロットが存在	
  
(dfs.heartbeat.intervalの値:デフォ3秒)	
  
この二つの問題は解決できる	
 
そう、Sparkならね
Spark	
  vs.	
  Disk	
  I/O	
  	
 
•  キャッシュ	
  
•  データセットのキャッシュ	
  
•  計算結果のキャッシュ	
  
➡Disk	
  I/O減	
  
•  RDD(Resillient	
  Distributed	
  Datasets)	
  
•  キャッシュはクラスタノード間で分散保持	
  
➡一部が失われても復旧可能	
  
Spark	
  vs.	
  task	
  launching	
  time	
  	
 
•  論文曰く、「fast	
  event-­‐driven	
  RPC	
  libraryを使ったよ」	
  
	
  
Spark	
  vs.	
  task	
  launching	
  time	
  	
 
•  論文曰く、「fast	
  event-­‐driven	
  RPC	
  libraryを使ったよ」	
  
•  5〜10sec	
  ➡	
  5ms	
  
•  Ref.	
  
	
  “Shark:	
  SQL	
  and	
  Rich	
  AnalyWcs	
  at	
  Scale”	
  
hYps://www.icsi.berkeley.edu/pubs/networking/ICSI_sharksql12.pdf	
  
結果、繰り返し処理の高速化	
 
Ref.	
  
“Spark:	
  A	
  framework	
  for	
  iteraWve	
  and	
  interacWve	
  cluster	
  compuWng”	
  
hYp://laser.inf.ethz.ch/2013/material/joseph/LASER-­‐Joseph-­‐6.pdf	
  
機械学習	
  on	
  Spark	
 
•  Sparkの代表的な用途として機械学習	
  
•  What’s	
  機械学習	
  
•  スパムフィルタ	
  
•  レコメンド	
  
•  顔認識、手書き文字認識	
  
•  画像処理	
  
•  広告のパーソナライズ	
  
•  マルウェア検知	
  
•  とかとか	
  
•  機械学習のアルゴリズムの一部は繰り返し処理が激しい	
  
What’s	
  MLlib	
 
•  Spark用の機械学習ライブラリ	
  
•  実装済みアルゴリズム(まだ少ない)	
  
•  SVM	
  
•  ロジスティク回帰	
  
•  線形回帰	
  
•  リッジ回帰	
  
•  Lasso	
  
•  K-­‐Means	
  
•  協調フィルタリング	
  
•  ALS(交互最小二乗法)	
  
•  Gradient	
  Descent(最急降下法)	
  
Why	
  MLlib	
 
•  簡単!	
  
•  JavaでK-­‐Meansを利用する場合	
  
KMeansModel	
  model	
  =	
  KMeans.train(points.rdd(),	
  5,	
  3,	
  5);	
  
	
  
というのは嘘で、実際には前段階で入力データをpointsに
入力データをキャッシュさせる処理を書くけど	
  
Hadoop	
  vs.	
  Spark(+MLlib)	
 
•  速度比較	
  
•  ロジスティク回帰で100倍	
  
•  ref.	
  hYp://spark.apache.org/	
  
	
  
	
  
	
  
•  What’s	
  ロジスティク回帰
Why	
  EC2	
  (+Spot	
  Instance)	
 
•  機械学習	
  on	
  EC2	
  
•  バッチ処理であることが多い	
  
•  低い稼働率	
  
•  計算量が多くなりがち	
  
•  高いスペックのマシンを利用したい	
  
•  Spot	
  Instance	
  
•  安い	
  
•  用途によってはリアルタイム性を重視しない	
  
•  Spark	
  on	
  EC2	
  
•  spark/ec2/spark-­‐ec2	
  
•  EC2上にクラスタを構築、管理するためのスクリプト	
  
•  コマンド一発でインスタンスの生成からsparkのインストール、設定まで	
  
•  Spark公式	
  
•  Spot	
  Instance対応	
  
•  分散処理とSpot	
  Instance	
  
•  1台でちんたらバッチ処理やってると相場が上昇してTerminateされる	
  
How	
  to	
  use	
  spark-­‐ec2	
 
•  例えば	
  
•  masterをm3.large	
  
•  slaveをm3.xlargeで3台	
  
•  Amazon	
  Linux(64bit)	
  
•  Tokyo	
  Region	
  
$	
  spark-­‐ec2	
  –t	
  m3.xlarge	
  –s	
  3	
  –m	
  m3.large	
  –a	
  ami-­‐84f1cfc1	
  –r	
  ap-­‐northeast-­‐1	
  	
  –k	
  
hoge	
  launch	
  spark-­‐test	
  
	
  
•  上記構成のslaveをspot	
  instance($0.3で入札)で構築	
  
	
  
$	
  spark-­‐ec2	
  -­‐-­‐spot-­‐price=0.3	
  –t	
  m3.xlarge	
  –s	
  3	
  –m	
  m3.large	
  –a	
  ami-­‐84f1cfc1	
  –r	
  ap-­‐
northeast-­‐1	
  	
  –k	
  hoge	
  launch	
  spark-­‐test	
  
•  他にもオプション色々	
  
•  -­‐z	
  ZONE,	
  -­‐-­‐zone=ZONE	
  
•  -­‐-­‐ebs-­‐vol-­‐size=SIZE	
  
•  -­‐-­‐use-­‐exisWng-­‐master	
  
•  (略	
  
まとめ	
 
•  簡単	
  
•  /spark/ec2/ec2-­‐spark	
  
•  MLlib	
  
•  低コスト	
  
•  EC2	
  +	
  Spot	
  Instance	
  
•  高速	
  
•  Spark	
  
•  機械学習	
  
•  繰り返し処理で実装されてるアルゴリズムだけだけどね	
  
Fin.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
 
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツJP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
 
Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編
 
Re:dash Use Cases at iPROS
Re:dash Use Cases at iPROSRe:dash Use Cases at iPROS
Re:dash Use Cases at iPROS
 
Spark Structured Streaming with Kafka
Spark Structured Streaming with KafkaSpark Structured Streaming with Kafka
Spark Structured Streaming with Kafka
 
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
 
性能測定道 実践編
性能測定道 実践編性能測定道 実践編
性能測定道 実践編
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
 
SparkTokyo2019NovIshizaki
SparkTokyo2019NovIshizakiSparkTokyo2019NovIshizaki
SparkTokyo2019NovIshizaki
 
20150513 legobease
20150513 legobease20150513 legobease
20150513 legobease
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 

Andere mochten auch

CloudTrail でログとれ〜る
CloudTrail でログとれ〜るCloudTrail でログとれ〜る
CloudTrail でログとれ〜る
Hokuto Hoshi
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
 

Andere mochten auch (9)

Amazon Kinesis: Real-time Streaming Big data Processing Applications (BDT311)...
Amazon Kinesis: Real-time Streaming Big data Processing Applications (BDT311)...Amazon Kinesis: Real-time Streaming Big data Processing Applications (BDT311)...
Amazon Kinesis: Real-time Streaming Big data Processing Applications (BDT311)...
 
5分でできる ebfly
5分でできる ebfly5分でできる ebfly
5分でできる ebfly
 
AWS Casual2 LT
AWS Casual2 LTAWS Casual2 LT
AWS Casual2 LT
 
CloudTrail でログとれ〜る
CloudTrail でログとれ〜るCloudTrail でログとれ〜る
CloudTrail でログとれ〜る
 
20140418 aws-casual-network
20140418 aws-casual-network20140418 aws-casual-network
20140418 aws-casual-network
 
20140329 modern logging and data analysis pattern on .NET
20140329 modern logging and data analysis pattern on .NET20140329 modern logging and data analysis pattern on .NET
20140329 modern logging and data analysis pattern on .NET
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
 

Ähnlich wie Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習

Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Shinpei Ohtani
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
Tomoharu ASAMI
 
本番環境で使いたいPHP
本番環境で使いたいPHP本番環境で使いたいPHP
本番環境で使いたいPHP
Takuya Sato
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
 
NHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimotoNHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimoto
Masaki Fujimoto
 

Ähnlich wie Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習 (20)

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 Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
 
Life and how_to_live_it
Life and how_to_live_itLife and how_to_live_it
Life and how_to_live_it
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
データ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたデータ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみた
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
 
本番環境で使いたいPHP
本番環境で使いたいPHP本番環境で使いたいPHP
本番環境で使いたいPHP
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事
 
オンプレ回帰も簡単実現!自由自在なデータベース運用とは
オンプレ回帰も簡単実現!自由自在なデータベース運用とはオンプレ回帰も簡単実現!自由自在なデータベース運用とは
オンプレ回帰も簡単実現!自由自在なデータベース運用とは
 
20111130 10 aws-meister-emr_long-public
20111130 10 aws-meister-emr_long-public20111130 10 aws-meister-emr_long-public
20111130 10 aws-meister-emr_long-public
 
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonserverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Python
 
NHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimotoNHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimoto
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
 
Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメWeb時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメ
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習

  • 1. Spot  Instance  +  Spark  +   MLlib   で実現する簡単低コスト   高速機械学習 @yamakatu   AWS  Casual  Talks#2   2014/4/18
  • 2.
  • 3. おまだれ •  @yamakatu   •  お仕事:検索方面   •  自称フルスタックイクメンエンジニア   •  開発、インフラ、機械学習、統計、検索、育児   •  gihyo.jp  連載「Mahoutで体感する機械学習の実践」   •  合言葉は「読まずにはてブだけして」    
  • 5. Hadoopが苦手とする処理 •  オンライン処理(リアルタイム性)   •  バッチ処理で使おう   •  繰り返し処理   •  ?  
  • 6. 繰り返し処理@Hadoop? •  ここで言うところの繰り返し処理   •  一般的に言うところの「繰り返し処理」というよりも   •  前回の計算結果を次の計算で利用するような繰り返し処理   HDFS➡Map➡Shuffle➡Reduce➡HDFS   HDFS➡Map➡Shuffle➡Reduce➡HDFS   HDFS➡Map➡Shuffle➡Reduce➡HDFS  
  • 7. Why  ? •  Disk  I/O   1.  前回の出力をHDFS経由で入力値として受け取る   •  そのまま持っとけよ。。。   2.  さらにMap処理の出力は各ノードのローカルディスク   •  バッファからあふれた分だけだっけ?   •  タスク処理の準備にかかる時間   1.  JVMの起動コスト   •  TaskTrackerはmap/reduceタスクごとに子プロセスを起動     2.  TaskTrackerへのタスク割当間隔   •  Heartbeatでスロットの空き数を通知   ➡最大でHeartbeat間隔の時間だけ何もしないスロットが存在   (dfs.heartbeat.intervalの値:デフォ3秒)  
  • 9. Spark  vs.  Disk  I/O   •  キャッシュ   •  データセットのキャッシュ   •  計算結果のキャッシュ   ➡Disk  I/O減   •  RDD(Resillient  Distributed  Datasets)   •  キャッシュはクラスタノード間で分散保持   ➡一部が失われても復旧可能  
  • 10. Spark  vs.  task  launching  time   •  論文曰く、「fast  event-­‐driven  RPC  libraryを使ったよ」    
  • 11. Spark  vs.  task  launching  time   •  論文曰く、「fast  event-­‐driven  RPC  libraryを使ったよ」   •  5〜10sec  ➡  5ms   •  Ref.    “Shark:  SQL  and  Rich  AnalyWcs  at  Scale”   hYps://www.icsi.berkeley.edu/pubs/networking/ICSI_sharksql12.pdf  
  • 12. 結果、繰り返し処理の高速化 Ref.   “Spark:  A  framework  for  iteraWve  and  interacWve  cluster  compuWng”   hYp://laser.inf.ethz.ch/2013/material/joseph/LASER-­‐Joseph-­‐6.pdf  
  • 13. 機械学習  on  Spark •  Sparkの代表的な用途として機械学習   •  What’s  機械学習   •  スパムフィルタ   •  レコメンド   •  顔認識、手書き文字認識   •  画像処理   •  広告のパーソナライズ   •  マルウェア検知   •  とかとか   •  機械学習のアルゴリズムの一部は繰り返し処理が激しい  
  • 14. What’s  MLlib •  Spark用の機械学習ライブラリ   •  実装済みアルゴリズム(まだ少ない)   •  SVM   •  ロジスティク回帰   •  線形回帰   •  リッジ回帰   •  Lasso   •  K-­‐Means   •  協調フィルタリング   •  ALS(交互最小二乗法)   •  Gradient  Descent(最急降下法)  
  • 15. Why  MLlib •  簡単!   •  JavaでK-­‐Meansを利用する場合   KMeansModel  model  =  KMeans.train(points.rdd(),  5,  3,  5);     というのは嘘で、実際には前段階で入力データをpointsに 入力データをキャッシュさせる処理を書くけど  
  • 16. Hadoop  vs.  Spark(+MLlib) •  速度比較   •  ロジスティク回帰で100倍   •  ref.  hYp://spark.apache.org/         •  What’s  ロジスティク回帰
  • 17. Why  EC2  (+Spot  Instance) •  機械学習  on  EC2   •  バッチ処理であることが多い   •  低い稼働率   •  計算量が多くなりがち   •  高いスペックのマシンを利用したい   •  Spot  Instance   •  安い   •  用途によってはリアルタイム性を重視しない   •  Spark  on  EC2   •  spark/ec2/spark-­‐ec2   •  EC2上にクラスタを構築、管理するためのスクリプト   •  コマンド一発でインスタンスの生成からsparkのインストール、設定まで   •  Spark公式   •  Spot  Instance対応   •  分散処理とSpot  Instance   •  1台でちんたらバッチ処理やってると相場が上昇してTerminateされる  
  • 18. How  to  use  spark-­‐ec2 •  例えば   •  masterをm3.large   •  slaveをm3.xlargeで3台   •  Amazon  Linux(64bit)   •  Tokyo  Region   $  spark-­‐ec2  –t  m3.xlarge  –s  3  –m  m3.large  –a  ami-­‐84f1cfc1  –r  ap-­‐northeast-­‐1    –k   hoge  launch  spark-­‐test     •  上記構成のslaveをspot  instance($0.3で入札)で構築     $  spark-­‐ec2  -­‐-­‐spot-­‐price=0.3  –t  m3.xlarge  –s  3  –m  m3.large  –a  ami-­‐84f1cfc1  –r  ap-­‐ northeast-­‐1    –k  hoge  launch  spark-­‐test   •  他にもオプション色々   •  -­‐z  ZONE,  -­‐-­‐zone=ZONE   •  -­‐-­‐ebs-­‐vol-­‐size=SIZE   •  -­‐-­‐use-­‐exisWng-­‐master   •  (略  
  • 19. まとめ •  簡単   •  /spark/ec2/ec2-­‐spark   •  MLlib   •  低コスト   •  EC2  +  Spot  Instance   •  高速   •  Spark   •  機械学習   •  繰り返し処理で実装されてるアルゴリズムだけだけどね  
  • 20. Fin.