はじパタ 14th LT SparkとMLlibとわたし
-
Upload
katsushi-yamashita -
Category
Technology
-
view
945 -
download
3
description
Transcript of はじパタ 14th LT SparkとMLlibとわたし
Spark と MLlib とわたし ~ はじパタよ、永遠に SP ~
はじパタ 14th LT 2014.3.18
やまかつ
Who are Yamakatu ? ß yamakatu(やまかつ) ß お仕事:検索方面 ß フルスタックイクメンエンジニア
Þ 開発、インフラ、機械学習、統計、検索、育児
ß gihyo.jp で連載してました Þ 合言葉「読まずにはてブだけして」
What’s Spark ? ß 2014/2/27 にApacheのTop Level Projectになったばかり
ß Hadoopのエコシステム ß 、、、と、その前に
What’s Hadoop ?(一応) ß 以下の二つで構成される
Þ MapReduce Ý 分散処理:複数台のマシンで計算
Þ HDFS Ý 分散ファイルシステム:複数台のマシンに分散保存
ß 大量のデータを高速に処理する
Hadoopクラスタ
サーバ
HDFS
MapReduce サーバ
HDFS
MapReduce サーバ
HDFS
MapReduce
…
MapReduce(一応)
Map1
Map2
Map3
Reduce1
Reduce2
HDFS HDFS
並列処理 集約処理 入力読込 出力書込 Shuffle
Weak point of Hadoop • 繰り返し処理において、無駄が多い – ? 3. 4.
• K-Meansの場合を考える – 収束するまで以下を繰り返す
• 各データは最も重心が近いクラスタに所属 • クラスタの重心を再計算
– 上記繰り返しにおける1回で • HDFS➡Map➡Shuffle➡Reduce➡HDFS • 繰り返す毎にDisk I/Oが発生する
– 次の繰り返しで使うデータをわざわざHDFS経由で渡すのは無駄
そう、Spark ならね ß Spark はデータセットをキャッシュできる
Þ 一度読み込んだデータセットのキャッシュ Þ 計算結果もキャッシュできる Þ これにより繰り返し処理の Disk I/O を大きく低減できる Þ さっきの K-Means で極端に言えば
Ý Disk Read:最初にデータセットの読み込みの時に1回 Ý Disk Write:繰り返し終了時に計算結果を書き出す時の1回
ß RDD(Resillient Distributed Datasets) Þ キャッシュはクラスタノード間で分散保持されていて、一部が失われても復旧可能
ß 繰り返し処理に適している
Hadoop vs. Spark + Mllib ß Hadoopと比較した際の実行速度らしい (引用)
Þ ロジスティク回帰:150倍 Ý ロジスティク回帰はあからさまな繰り返し処理
Þ ADMM:15倍
ß 本当かどうか試してみた結果見てみたい?
What’s MLlib ß Spark用のMachine Learning の library ß アルゴリズム(まだ少ない)
Þ Linear SVM Þ ロジスティク回帰 Þ Linear Regression Þ Ridge Regression Þ K-Means Þ ALS Þ 最急降下法 Þ 協調フィルタリング
Sparkの構築 ß 結構簡単 ß EC2上ならスクリプト一発
Þ しかもspot instance対応 ß 詳しくは多分今度Blogに書く(時間切れ
祝 はじパタ最終回