GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014

Preview:

DESCRIPTION

GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014

Citation preview

GraphXは Sca laエンジニアにとっての ブルーオーシャン

Scala Matsuri 2014 LT

@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 VAL

1 1 0

2 2 0

3 3 0

SRC TGT VAL1 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

My work about GraphX

• GraphXの日本語訳ドキュメント

• https://gist.github.com/ironpeace/9306874

• グラフビジュアルツール

• 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

GraphX はブルーオーシャン!

• GraphXはグラフ構造データの並列分散処理機構として優れている

• グラフ構造データを扱えるようになることでこれまで実現できなかったことができるようになる

• GraphX はまだ未熟

• Scalaエンジニアはグラフデータの扱いに優位!

https://www.flickr.com/photos/exalthim/337922734

Get the Graph Power!Thank you !

@teppei_tosahttps://www.flickr.com/photos/exalthim/337922734