GraphXは Sca laエンジニアにとっての ブルーオーシャン
Spark Meetup at 2014/09/08
@teppei_tosahttps://www.flickr.com/photos/exalthim/337922734
@ t e p p e i _ t o s a F i n a n c e I T E n g i n e e r !A s a k u s a / H a d o o p / S c a l a / P l a y F r a m e w o r k / S p a r k / G r a p h X
Who am I ?
https://www.flickr.com/photos/exalthim/337922734
• Sparkのコンポーネントのひとつ • 並列グラフ計算処理システム • グラフ構造データと表構造データの並列分散処理をひとつのシステムで実装することが可能
https://www.flickr.com/photos/exalthim/337922734
グラフ計算処理の例:ページランク
0.33 0.33 0.331を頂点の数で割った数値を各頂点の値としてセット
0.170.17
0.33 0.33
各頂点の値を、各頂点から出ているリンク数で割って、そのリンク先の頂点に配布
0.17 0.50 0.33接続してきているリンクから渡って来た値を加算して自分の頂点の値としてセット
各頂点の値が収束するまで繰り返し、この値をランクポイントとする
https://www.flickr.com/photos/exalthim/337922734
グラフ計算の並列分散処理の難しさ
頂点間での接続情報があるため頂点毎に分散しての計算処理は、分散処理間での通信が必要になってしう (Apache Giraphはインフラのための分散協調機構であるZooKeeperを活用している)
https://www.flickr.com/photos/exalthim/337922734
グラフ構造データと表構造データの処理を統一
10
20
30
1
100
3
110
120200
2
[1,10,[2,100]][2,20,[3,110]][3,30,[1,200],[2,120]]
Apache GiraphI D VA L
1 1 0
2 2 0
3 3 0
S R C T G T VA L1 2 1 0 02 3 1 1 03 2 1 2 03 1 2 0 0
GraphX
val graph = Graph.fromEdgesgraph.joinVertices(…)
https://www.flickr.com/photos/exalthim/337922734
あなたの周りにもグラフデータ
Social Network Train Network Data Network
https://www.flickr.com/photos/exalthim/337922734
グラフデータを使ってできること
Eveluate Vertex Clustering Graph Shape
Flow on Graph Predict Link
GraphX は まだまだ未成熟
• Web上の情報少ない
• R の igraph が揃えているのような関数が全く揃っていない
https://www.flickr.com/photos/exalthim/337922734
https://www.flickr.com/photos/katedot/8272997562
• GraphXの日本語訳ドキュメント
https://gist.github.com/ironpeace/9306874
https://www.flickr.com/photos/exalthim/337922734
• グラフビジュアルツール
https://github.com/ironpeace/graph-web
https://www.flickr.com/photos/exalthim/337922734
Sca laエンジニアは有利
• ScalaのCollection APIに似たAPIでグラフデータを扱うことができる
• 頻出する再帰処理の実装がし易い
• 関数の実装がし易い
https://www.flickr.com/photos/exalthim/337922734
Other Graph-para l le l Computat ion System
https://www.flickr.com/photos/exalthim/337922734
G i r a p h G r a p h L a b G r a p h X
S p e e d S l o w Ve r y F a s t F a s t
N e w S t a b l e N e w N e w
L a n g J a v a P y t h o n S c a l a ( P y t h o n / J a v a )
E T L D i f f i c u l t E a s y E a s y
L i b N O Ve r y G o o d F e w
GraphX はブルーオーシャン!
• GraphXはグラフ構造データの並列分散処理機構として優れている
• グラフ構造データを扱えるようになることでこれまで実現できなかったことができるようになる
• GraphX はまだ未熟
• Scalaエンジニアはグラフデータの扱いに優位!
https://www.flickr.com/photos/exalthim/337922734
Spark-JobServer
• “Spark as a Service”
• SparkのjobとcontextのREST APIを提供
• いかなる環境・言語からもSparkを扱うことが可能
• Job間でひとつのcontextを共有
• Job間でキャッシュされたRDDを共有
• 同期/非同期API。JOB結果をJSON応答。
https://www.flickr.com/photos/exalthim/337922734
https://www.flickr.com/photos/exalthim/337922734
Spark-JobServer
context
Cached RDD
JOB
JOB
JOB
Spark
Web AP ServerWeb Client
Web Client
Web Client
REST API
REST API
REST API
Get the Graph Power!Thank you !
@teppei_tosahttps://www.flickr.com/photos/exalthim/337922734
Top Related