SlideShare a Scribd company logo
1 of 20
Download to read offline
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.

More Related Content

What's hot

スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介Sotaro Kimura
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Sotaro Kimura
 
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 IntroductionYu Ishikawa
 
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツJP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツHolden Karau
 
Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121Teruo Kawasaki
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Recruit Technologies
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTeruo Kawasaki
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてcyberagent
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編Yuto Hayamizu
 
Re:dash Use Cases at iPROS
Re:dash Use Cases at iPROSRe:dash Use Cases at iPROS
Re:dash Use Cases at iPROSJumpei Yokota
 
Spark Structured Streaming with Kafka
Spark Structured Streaming with KafkaSpark Structured Streaming with Kafka
Spark Structured Streaming with KafkaSotaro Kimura
 
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習Kazuki Taniguchi
 
性能測定道 実践編
性能測定道 実践編性能測定道 実践編
性能測定道 実践編Yuto Hayamizu
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Shingo Furuyama
 
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜x1 ichi
 
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講演)Hadoop / Spark Conference Japan
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスKentaro Yoshida
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Takeshi Yamamuro
 

What's hot (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のクエリ処理系と周辺の話題
 

Viewers also liked

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)...Amazon Web Services
 
5分でできる ebfly
5分でできる ebfly5分でできる ebfly
5分でできる ebflyKazuyuki Honda
 
CloudTrail でログとれ〜る
CloudTrail でログとれ〜るCloudTrail でログとれ〜る
CloudTrail でログとれ〜るHokuto Hoshi
 
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 .NETTakayoshi Tanaka
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Sotaro Kimura
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングYuichi Tateno
 

Viewers also liked (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 を利用した大規模ウェブサービスのロギング
 

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

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
 
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 FallShinpei Ohtani
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出Kai Sasaki
 
Life and how_to_live_it
Life and how_to_live_itLife and how_to_live_it
Life and how_to_live_itToshiro Yagi
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Kai Sasaki
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Tokuhiro Matsuno
 
データ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたデータ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたYASUKAZU NAGATOMI
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and designTomoharu ASAMI
 
本番環境で使いたいPHP
本番環境で使いたいPHP本番環境で使いたいPHP
本番環境で使いたいPHPTakuya Sato
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Masakazu Muraoka
 
Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事Hirokazu Tokuno
 
オンプレ回帰も簡単実現!自由自在なデータベース運用とは
オンプレ回帰も簡単実現!自由自在なデータベース運用とはオンプレ回帰も簡単実現!自由自在なデータベース運用とは
オンプレ回帰も簡単実現!自由自在なデータベース運用とは株式会社クライム
 
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonserverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonmasahitojp
 
NHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimotoNHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimotoMasaki 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報告会-recotech
 
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのsparkRyuji Tamagawa
 
Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメWeb時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメHideyuki Takeuchi
 

Similar to 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時代の大富豪的プログラミングのススメ
 

Recently uploaded

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (8)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

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.