SlideShare ist ein Scribd-Unternehmen logo
1 von 88
Downloaden Sie, um offline zu lesen
GMO プライベート DMP で
ビッグデータ解析をするために
アプリクラウドで
Apache Spark の検証をしてみた
2
アウトライン
1. Spark とは
• GMO プライベート DMP での活用イメージ
2. Spark と YARN
3. 性能評価
• チューニングポイントおよび注意点
4. まとめ
2
1. Spark とは
• 大規模データを高速処理するための分散処理機構
• UC Berkley の AMPLab から起業した
Databricks 社が開発
– Scala / Java / Python の API がある
• 2014/12/18 に 1.2.0 リリース
• 本日リリースされた CDH 5.3.0 に同梱!
4
5
『インメモリなら最大 100 倍
ディスクでも最大 10 倍
Hadoop MR より速い』
http://www.cloudera.co.jp/blog/putting-spark-to-use-fast-in-memory-computing-for-your-big-data-applications.html
6
反復処理のコストを抑えるため
計算結果をインメモリでキャッシュして
後続の処理で最大限活用
7
HDFS read HDFS write HDFS read
HDFS read Memory write Memory read
8
https://spark.apache.org/
様々な基盤技術と連携して動作可能
様々なサブシステムによって提供される豊富な機能
9
Spark
SQL
Spark
Streaming
MLib GraphX
分散 SQL ク
エリエンジン
ストリーミン
グ処理
機械学習
ライブラリ
グラフ処理
x
11
• 企業が保有する『顧客データ』と『ユーザのWeb
行動データ』を集約管理するためのシステム
• GMO アドパートナーズ / GMO NIKKO 社と次世
代システム研究室で協同開発
• ビッグデータ処理に Hadoop を採用 (CDH 5.2)
http://pr.gmopdmp.jp/
12
http://pr.gmopdmp.jp/
13
14
• 『優良ユーザ』の特徴を分析し、類似属性を持っ
たユーザへのアプローチに役立てる
• 『優良』か『優良ではない』ラベルでの教師あり学習
• MLib の Random Forests / Decision Trees や
Linear Support Vector Machines
プライベート DMP でのSpark活用イメージ
分類器
優良ユーザ
非優良ユーザ
『優良ユーザの特徴』
15
• 自社サイトに訪れるユーザを類似度からいくつか
の集団に分け、その特徴からアプローチを変える
• 教師なし学習
• MLib の K-means
プライベート DMP でのSpark活用イメージ
不活性ユーザー層
・年齢 : 20代
・性別:男性
・アクセス頻度:…
2. Spark と YARN
17
CDH
18
Cloudera's Distribution
including
Apache Hadoop
http://www.cloudera.com/content/cloudera/en/products-and-services/cdh.html
19
http://www.cloudera.com/content/cloudera/en/products-and-services/cdh.html
20
21
YARN
22
yarn/jɑːrn/
名詞複∼s/-z/
1 U 種類では可算 主に米 紡ぎ糸, より糸
▸ spin (a) good yarn
良質の糸を紡ぐ
23
YARN
• Yet Another Resource Negotiator
• 分散アプリケーション開発を容易にするため
のフレームワーク
• リソース要求のハンドリングやタスクのスケ
ジューリングを行う
• 旧来の MapReduce 以外の処理を柔軟に実行
できるようになった
http://www.dataenthusiast.com/2014/09/hadoop-2-0-yarn-architecture/
24
http://hortonworks.com/blog/apache-spark-yarn-ready-hortonworks-data-platform/
25
26
YARN 上での Spark 実行モード
!
• YARN クラスタモード
• YARN クライアントモード
27
Client
YARN Container
Spark Application
Master
Spark Driver
YARN Resource
Manager
YARN Node ManagerYARN Node ManagerYARN Node Manager
YARN Container
Spark
Executor
YARN Container
Spark
Executor
Spark Task
YARN クラスタモード
本番実行などの用途
http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/
アプリ起動
リソース確保
Executor の起動・コード送信
28
Client
Application
YARN Container
Spark
Application
Master
Spark Driver
YARN Resource
Manager
YARN Node ManagerYARN Node ManagerYARN Node Manager
YARN Container
Spark
Executor
YARN Container
Spark
Executor
Spark Task
http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/
YARN クライアントモード
開発・インタラクティブアプリケーションなどの用途
コード送信
リソース確保
Executor の起動・コード送信
29
Spark 各種起動モード間の比較
http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/
アプリケーション中の
SparkContext オブジェクトによって駆動
リソース管理のための外部サービス
(Standalone または YARN / Mesos) タスクという粒度で!
アプリケーションを実行
JAR ファイルなどの
アプリケーションコード + タスク
30
31
Spark アプリケーションの動作フロー
会員 ID, 性別コード, 年齢, 地域コード, 会員登録日
100000000, male, 32, osaka, 2014-04-21 19:48:18
100000001, male, 50, tokyo, 2014-06-01 09:17:40
100000002, female, 37, tokyo, 2014-07-31 07:34:48
100000003, male, 41, osaka, 2014-06-06 08:25:55
100000004, female, 63, osaka, 2014-04-18 05:01:21
val memberInfoFile = /tmp/member_info.csv
(hdfs のファイルパス)
会員属性ファイルから性別をカウント
32
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
会員属性ファイルから性別をカウント
会員 ID, 性別コード, 年齢, 地域コード, 会員登録日
100000000, male, 32, osaka, 2014-04-21 19:48:18
100000001, male, 50, tokyo, 2014-06-01 09:17:40
100000002, female, 37, tokyo, 2014-07-31 07:34:48
100000003, male, 41, osaka, 2014-06-06 08:25:55
100000004, female, 63, osaka, 2014-04-18 05:01:21
33
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
会員属性ファイルから性別をカウント
34
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
会員属性ファイルから性別をカウント
35
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
会員属性ファイルから性別をカウント
会員 ID, 性別コード, 年齢, 地域コード, 会員登録日
100000000, male, 32, osaka, 2014-04-21 19:48:18
100000001, male, 50, tokyo, 2014-06-01 09:17:40
100000002, female, 37, tokyo, 2014-07-31 07:34:48
100000003, male, 41, osaka, 2014-06-06 08:25:55
100000004, female, 63, osaka, 2014-04-18 05:01:21
36
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
val cols = lines.map(_.split(","))
会員属性ファイルから性別をカウント
{会員 ID, 性別コード, 年齢, 地域コード, 会員登録日}
{100000000, male, 32, osaka, 2014-04-21 19:48:18}
{100000001, male, 50, tokyo, 2014-06-01 09:17:40}
{100000002, female, 37, tokyo, 2014-07-31 07:34:48}
{100000003, male, 41, osaka, 2014-06-06 08:25:55}
{100000004, female, 63, osaka, 2014-04-18 05:01:21}
37
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
会員属性ファイルから性別をカウント
{row(0), row(1), row(2), row(3), row(4)}
{100000000, male, 32, osaka, 2014-04-21 19:48:18}
{100000001, male, 50, tokyo, 2014-06-01 09:17:40}
{100000002, female, 37, tokyo, 2014-07-31 07:34:48}
{100000003, male, 41, osaka, 2014-06-06 08:25:55}
38
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
会員属性ファイルから性別をカウント
{row(0), row(1), row(2), row(3), row(4)}
{100000000, male, 32, osaka, 2014-04-21 19:48:18}
{100000001, male, 50, tokyo, 2014-06-01 09:17:40}
{100000002, female, 37, tokyo, 2014-07-31 07:34:48}
{100000003, male, 41, osaka, 2014-06-06 08:25:55}
39
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
会員属性ファイルから性別をカウント
(row(1), 1)
(male, 1)
(male, 1)
(female, 1)
(male, 1)
40
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
val result = genders.reduceByKey((x, y) => x + y)
会員属性ファイルから性別をカウント
(male, 1)
(female, 1)
(male, 1)
(male, 1)
(male, 2)
(male, 3)
(female, 1)
41
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
val result = genders.reduceByKey((x, y) => x + y)
会員属性ファイルから性別をカウント
42
val memberInfoFile = /tmp/member_info.csv
val sc = new SparkContext()
val lines = sc.textFile(memberInfoFile)
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
val result = genders.reduceByKey((x, y) => x + y)
result.collect().foreach(println)
sc.stop()
(各種リソースの解放)
会員属性ファイルから性別をカウント
43
44
Spark アプリケーションのポイント(おさらい)
!
• RDD : Resilient Distributed Datasets
• DAG : Directed Acyclic Graph (無閉路有向グラフ)
45
RDD : Resilient Distributed Datasets
ファイルの読み込み、または実行結果が一意に決まる変換で
のみ生成される共有データプリミティブ
Spark での処理は RDD を変更するのではなく関数によって
変換し、新しい RDD を紡ぐことで記述する
val sc = new SparkContext()
val lines = sc.textFile( /tmp/member_info.csv )
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
val result = genders.reduceByKey((x, y) => x + y)
result.collect().foreach(println)
sc.stop()
RDD と Transformations / Actions
Actions
TransformationsRDD
46
47
DAG : Directed Acyclic Graph (有向無閉路グラフ)
Spark は lineage と呼ばれる RDD の『系譜』で耐障害性を実
現している(障害時は前段の処理結果から再計算)
DAG は Action が発行されたときに初めて実行計画を立て、処
理を開始する(遅延評価)
1
2
3
4
5
7
6
8
RDD と Transformations / Actions
val sc = new SparkContext()
val lines = sc.textFile( /tmp/member_info.csv )
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
val result = genders.reduceByKey((x, y) => x + y)
result.collect().foreach(println)
sc.stop()
Actions
(ここまで実際の処理は走らない)
TransformationsRDD
48
Stage 1 Stage 0
map map reduceByKey
collect
http://www.slideshare.net/manishgforce/lightening-fast-big-data-analytics-using-apache-spark
val sc = new SparkContext()
val lines = sc.textFile( /tmp/member_info.csv )
val cols = lines.map(_.split(","))
val genders = cols.map(row => (row(1), 1))
val result = genders.reduceByKey((x, y) => x + y)
result.collect().foreach(println)
. 性
能
評
価
事前準備
51
52
YARN 側のチューニングが必要
!
14/12/23 05:00:10 ERROR yarn.Client: Required executor
memory (16384 MB), is above the max threshold (8192 MB)
of this cluster.
Exception in thread "main" java.lang.IllegalArgumentException:
Required executor memory (16384 MB), is above the max
threshold (8192 MB) of this cluster.
53
推奨されるコンテナ数の算出
!
# of containers = min (
2 * CORES,
1.8 * DISKS,
(Total available RAM) / MIN_CONTAINER_SIZE
)
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/
content/rpm-chap1-11.html
※ 8コア CPU x 32GB メモリ x 640GB ディスク x 10 ノード
推奨されるコンテナ数の算出
!
!
!
!
54
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/
content/rpm-chap1-11.html
※ 8コア CPU x 32GB メモリ x 640GB ディスク x 10 ノード
55
推奨されるコンテナ数の算出
!
# of containers = min (
2 * CORES,
1.8 * DISKS,
(Total available RAM) / MIN_CONTAINER_SIZE
)
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/
content/rpm-chap1-11.html
※ 8コア CPU x 32GB メモリ x 640GB ディスク x 10 ノード
(32GB - 6GB予約) / 2GB = 13
2 * 8コア = 16
1.8 * 2枚 = 3.6
56
推奨されるコンテナ毎のメモリサイズの算出
!
# RAM-per-Container = maximum of (
MIN_CONTAINER_SIZE,
(Total Available RAM) / Containers)
)
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/
content/rpm-chap1-11.html
※ 8コア CPU x 32GB メモリ x 640GB ディスク x 10 ノード
2GB
(32GB - 6GB予約) / 3.6 = 7.2GB
推奨されるYARN 設定
!
!
!
!
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/
content/rpm-chap1-11.html
57
算出された YARN 設定
yarn.nodemanager.resource.memory-mb
コンテナへの割り当てが可能な物理メモリ量 (26 GB)
!
yarn.scheduler.minimum-allocation-mb
コンテナメモリ最小値 (7 GB)
!
yarn.scheduler.maximum-allocation-mb
コンテナメモリ最大値 (26 GB)
58
算出された YARN 設定
yarn.app.mapreduce.am.resource.mb
ApplicationMaster の要求する物理メモリ量 (14GB)
!
yarn.app.mapreduce.am.command-opts
MapReduce ApplicationMaster に渡される Java コマンドラ
インの引数 (-Xmx11468m)
59
参考) 便利ツール
Hortonworks 社提供、だが微妙にロジックが加わっている。
!
!
!
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.9.1/bk_installing_manually_book/
content/rpm-chap1-11.html
60
[root@spark scripts]# python yarn-utils.py -c 8 -m 32 -d 1 -k False
Using cores=8 memory=32GB disks=1 hbase=False
Profile: cores=8 memory=31744MB reserved=1GB usableMem=31GB disks=1
Num Container=3
Container Ram=10240MB
Used Ram=30GB
Unused Ram=1GB
yarn.scheduler.minimum-allocation-mb=10240
yarn.scheduler.maximum-allocation-mb=30720
yarn.nodemanager.resource.memory-mb=30720
mapreduce.map.memory.mb=10240
mapreduce.map.java.opts=-Xmx8192m
mapreduce.reduce.memory.mb=10240
mapreduce.reduce.java.opts=-Xmx8192m
yarn.app.mapreduce.am.resource.mb=10240
yarn.app.mapreduce.am.command-opts=-Xmx8192m
mapreduce.task.io.sort.mb=4096
61
評価環境・方法
62
63
評価環境
• サバろうぜ!でお借りしているアプリクラウド
• 8 vCPU / 16GB Memory / 640GB HDD x 10台
• Master node その他
• 8 vCPU / 32GB Memory / 640GB HDD x 10台
• HDFS Datanode + Hive Gateway + Impala
Daemon + YARN NodeManager
• CDH 5.2.1
• Spark 1.1.0 on YARN
• HDFS, Hive, Hue, Impala, Oozie, YARN
64
パラメータ指定
spark.eventLog.enabled=true
spark.eventLog.dir=hdfs:///user/spark/applicationHistory
!
アプリケーション中で最後に実行
SparkContext.stop()
!
※ これらを設定しないとアプリケーション実行中しか見られな
い (YARN の Resource Manager UI からしか確認できない)
測定方法 : Spark UI
66
テストアプリ・データ
• 簡略化した『購買履歴』のダミーデータを用意
• 1億レコード (4.7 GB)
• 『全ての商品について購入された回数』を計算す
るアプリを各種パラメータを変更しながら実行
会員 ID、
購買日時、
商品単価、
支払い総額、
購入数、
商品 ID
67
68
実行方法
spark-submit --class PurchaseCount // 実行するクラス名
--name "${mem}G-${core}Core-${exec}Executers" // 名前
--master yarn-client // yarn-client モード
--executor-memory ${mem}G // 1 executor あたりのメモリ
--executor-cores ${core} // 1 executor あたりのコア
--num-executors ${exec} // 実行する executor 数
--conf spark.eventLog.enabled=true // Spark UI 描画用
--conf spark.eventLog.dir=hdfs:///user/spark/applicationHistory
purchase_count_2.10-1.0.jar // jar ファイル
!
※ mem, core, exec の値を変化させて実行
評価結果
69
0
35
70
105
140
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
collect (sec) map (sec) other (sec)
1CPU x n GB メモリ x 1 executor
有効化したメモリサイズ (GB)
実行時間(sec)
70
n CPU x 1 GB メモリ x 1 executor
有効化したコア数 (個)
実行時間(sec)
0
35
70
105
140
1 2 3 4 5 6 7 8
collect (sec) map (sec) other (sec)
71
1CPU x 1 GB メモリ x n executor
有効化した executor 数 (個)
実行時間(sec)
0
30
60
90
120
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
collect (sec) map (sec) other (sec)
NodeManager 数 = 10
72
コア数とExecutor数の関連性比較
設定詳細
実行時間(sec)
0
12.5
25
37.5
50
1CPU
1GB RAM
8 Executors
2CPU
1GB RAM
4 Executors
4CPU
2GB RAM
2 Executors
8CPU
1GB RAM
1 Executors
collect (sec) map (sec) other (sec)
73
成績上位の設定
設定詳細
実行時間(sec)
0
35
70
105
140
1CPU
1GB RAM
1 Executor
8CPU
1GB RAM
10 Executors
8CPU
1GB RAM
7 Executors
7CPU
1GB RAM
8 Executors
7CPU
1GB RAM
7 Executors
6CPU
1GB RAM
7 Executors
5CPU
1GB RAM
8 Executors
Impala
collect (sec) map (sec) other (sec)
74
75
• 128.0 MB Input x 38 タスクに分割されたため
Executor に 1GB 以上のメモリを振っても効果
がなかった
• コア数の増加は GC にかかる時間を減少させた
が、5コア以上では顕著な効果は見られなかった
– Databricks のドキュメントが参考になりそう
• map/collect 以外にかかる時間については要調査
追加評価
!
• ここからは CDH 5.3 x Spark 1.2.0
• 5千万レコード(約2.4GB)から20億レコード(約
94.8 GB)までデータを増やして map、collect、
及びトータルでの処理時間の変化を測定
(executor 数も可変とした)
76
メモリ1G / 8CPU / 5 Executors
77
実行時間(sec)
0
45
90
135
180
データサイズ (GB)
0 20 40 60 80 100
Total duration Collect Map Other
メモリ1G / 8CPU / 6 Executors
78
実行時間(sec)
0
45
90
135
180
データサイズ (GB)
0 20 40 60 80 100
Total duration Collect Map Other
メモリ1G / 8CPU / 6 Executors
79
実行時間(sec)
0
27.5
55
82.5
110
データサイズ (GB)
0 20 40 60 80 100
Total duration Collect Map Other
※後続のグラフと比較しやすいようにスケールを変えたもの
メモリ1G / 8CPU / 7 Executors
80
実行時間(sec)
0
27.5
55
82.5
110
データサイズ (GB)
0 20 40 60 80 100
Total duration Collect Map Other
メモリ1G / 8CPU / 8 Executors
81
実行時間(sec)
0
27.5
55
82.5
110
データサイズ (GB)
0 20 40 60 80 100
Total duration Collect Map Other
82
実行時間(sec)
0
27.5
55
82.5
110
データサイズ (GB)
0 20 40 60 80 100
Total duration Collect Map Other
メモリ1G / 8CPU / 9 Executors
83
実行時間(sec)
0
27.5
55
82.5
110
データサイズ (GB)
0 20 40 60 80 100
Total duration Collect Map Other
メモリ1G / 8CPU / 10 Executors
84
• データ量に対して処理時間はおおよそ線形に変化
しているように見える
• Map フェーズの増分が効いており、GC などに
かかる時間はデータサイズに対してほぼ一定
(executor 数が増加した場合、減少に転じる傾
向も見られる)
4. まとめ
86
今回の研究
• Apache Spark を GMO プライベート DMP で
活用するに当たって、サンプルアプリを開発して
プレ検証を行った。
• Spark/YARN アーキテクチャの理解を深めた
• アプリケーション開発の仕方を学んだ
• 各種パラメータ設定の及ぼす影響を調べた
87
今後のトピック
• プライベート DMP での解析機能の検証・実装
• 実データを MLib で解析
• 内部アーキテクチャの深堀り
• キャッシュ・シリアライザ
• その他の機能の調査
• Spark SQL / Spark Streaming / GlaphX
いつもアプリクラウドを使わせていただきまして
!
アプリクラウド事業部の皆様
サバろうぜ!支援制度運営の皆様
※サバろうぜ!に関してはこちら
!
誠にありがとうございます!

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
 
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
 
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
 
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
 
Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析
 
MapReduce入門
MapReduce入門MapReduce入門
MapReduce入門
 
Survey of Apache Spark
Survey of Apache SparkSurvey of Apache Spark
Survey of Apache Spark
 
20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public
 
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリデータサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
 
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 20162016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
 
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
 
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
 
オライリーセミナー Hive入門 #oreilly0724
オライリーセミナー Hive入門  #oreilly0724オライリーセミナー Hive入門  #oreilly0724
オライリーセミナー Hive入門 #oreilly0724
 
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
 
Datomic&datalog紹介
Datomic&datalog紹介Datomic&datalog紹介
Datomic&datalog紹介
 
Azure Search 大全
Azure Search 大全Azure Search 大全
Azure Search 大全
 

Andere mochten auch

オープンクラウド基盤に最適! EMCのElastic Cloudソリューション
オープンクラウド基盤に最適! EMCのElastic Cloudソリューションオープンクラウド基盤に最適! EMCのElastic Cloudソリューション
オープンクラウド基盤に最適! EMCのElastic Cloudソリューション
EMC Japan
 

Andere mochten auch (20)

Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 
SoftLayer バックアップ Idera編 + Endurance Storage編
SoftLayer バックアップ  Idera編 + Endurance Storage編SoftLayer バックアップ  Idera編 + Endurance Storage編
SoftLayer バックアップ Idera編 + Endurance Storage編
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座
 
DRBDで始める災害対策(DR)
DRBDで始める災害対策(DR)DRBDで始める災害対策(DR)
DRBDで始める災害対策(DR)
 
SXSWedu 2016 報告会 〜EdTech JAPAN 世界への挑戦 セッション紹介(山邉分)
SXSWedu 2016 報告会 〜EdTech JAPAN 世界への挑戦 セッション紹介(山邉分)SXSWedu 2016 報告会 〜EdTech JAPAN 世界への挑戦 セッション紹介(山邉分)
SXSWedu 2016 報告会 〜EdTech JAPAN 世界への挑戦 セッション紹介(山邉分)
 
オープンクラウド基盤に最適! EMCのElastic Cloudソリューション
オープンクラウド基盤に最適! EMCのElastic Cloudソリューションオープンクラウド基盤に最適! EMCのElastic Cloudソリューション
オープンクラウド基盤に最適! EMCのElastic Cloudソリューション
 
他山の石勉強会 DRBD編
他山の石勉強会 DRBD編他山の石勉強会 DRBD編
他山の石勉強会 DRBD編
 
『GMOプライベートDMP』の開発にあたって取り組んできた DevOps、更にその反省点と現在進行中のカイゼン事例の紹介
『GMOプライベートDMP』の開発にあたって取り組んできた DevOps、更にその反省点と現在進行中のカイゼン事例の紹介『GMOプライベートDMP』の開発にあたって取り組んできた DevOps、更にその反省点と現在進行中のカイゼン事例の紹介
『GMOプライベートDMP』の開発にあたって取り組んできた DevOps、更にその反省点と現在進行中のカイゼン事例の紹介
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
 
スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~
スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~
スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~
 
A System Framework for Decision Support in Ambient Intelligence
A System Framework for Decision Support in Ambient IntelligenceA System Framework for Decision Support in Ambient Intelligence
A System Framework for Decision Support in Ambient Intelligence
 
Augmented Reality Go: Extending Traditional Game Play with Interactive Self-L...
Augmented Reality Go: Extending Traditional Game Play with Interactive Self-L...Augmented Reality Go: Extending Traditional Game Play with Interactive Self-L...
Augmented Reality Go: Extending Traditional Game Play with Interactive Self-L...
 
Prototyping Augmented Traditional Games: Concept, Design and Case Studies
Prototyping Augmented Traditional Games: Concept, Design and Case StudiesPrototyping Augmented Traditional Games: Concept, Design and Case Studies
Prototyping Augmented Traditional Games: Concept, Design and Case Studies
 
Activity-Based Micro-pricing: Realizing Sustainable Behavior Changes through ...
Activity-Based Micro-pricing: Realizing Sustainable Behavior Changes through ...Activity-Based Micro-pricing: Realizing Sustainable Behavior Changes through ...
Activity-Based Micro-pricing: Realizing Sustainable Behavior Changes through ...
 
Design Issues and Empirical Study in Mobility Oriented Service Developmentﰀ
Design Issues and Empirical Study in Mobility Oriented Service DevelopmentﰀDesign Issues and Empirical Study in Mobility Oriented Service Developmentﰀ
Design Issues and Empirical Study in Mobility Oriented Service Developmentﰀ
 
EmoPoker
EmoPokerEmoPoker
EmoPoker
 
StudySapuri Data Analytics Platform with Treasure Data
StudySapuri Data Analytics Platform with Treasure DataStudySapuri Data Analytics Platform with Treasure Data
StudySapuri Data Analytics Platform with Treasure Data
 
継続的デリバリーと読み解く Web 開発あるあるとその対策
継続的デリバリーと読み解く Web 開発あるあるとその対策継続的デリバリーと読み解く Web 開発あるあるとその対策
継続的デリバリーと読み解く Web 開発あるあるとその対策
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
 
Spark1.0での動作検証 - Hadoopユーザ・デベロッパから見たSparkへの期待 (Hadoop Conference Japan 2014)
Spark1.0での動作検証 - Hadoopユーザ・デベロッパから見たSparkへの期待 (Hadoop Conference Japan 2014)Spark1.0での動作検証 - Hadoopユーザ・デベロッパから見たSparkへの期待 (Hadoop Conference Japan 2014)
Spark1.0での動作検証 - Hadoopユーザ・デベロッパから見たSparkへの期待 (Hadoop Conference Japan 2014)
 

Ähnlich wie GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた

SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
yamahige
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
Shintaro Fukushima
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima
 

Ähnlich wie GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた (20)

Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアル
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive search
 
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
 
An annotated context-free grammar based vulnerability detection using LALR pa...
An annotated context-free grammar based vulnerability detection using LALR pa...An annotated context-free grammar based vulnerability detection using LALR pa...
An annotated context-free grammar based vulnerability detection using LALR pa...
 
debugging server with strace
debugging server with stracedebugging server with strace
debugging server with strace
 
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析
 
201209 Biopackathon 12th
201209 Biopackathon 12th201209 Biopackathon 12th
201209 Biopackathon 12th
 
Data processing at spotify using scio
Data processing at spotify using scioData processing at spotify using scio
Data processing at spotify using scio
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
 
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
Rokko チュートリアル
Rokko チュートリアルRokko チュートリアル
Rokko チュートリアル
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
Azure DataLake 大全
Azure DataLake 大全Azure DataLake 大全
Azure DataLake 大全
 
Asakusa FrameworkとScalaの密かな関係
Asakusa FrameworkとScalaの密かな関係Asakusa FrameworkとScalaの密かな関係
Asakusa FrameworkとScalaの密かな関係
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
 
NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭
 
d3sparql.js
d3sparql.js d3sparql.js
d3sparql.js
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 

GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた