Spark

SparkアプリケーションのためのJavaガベージコレクションのチューニングについて

この記事は、インテルの SSG STOビッグデータテクノロジーグループのメンバーからDataBricksに寄稿されたブログを翻訳したものです。誤訳がありましたら、@teppei_tosaに御連絡ください。Sparkは、その優れた性能、シンプルなインターフェイス、および分析や…

SparkのDAGを確認するためにSpark UI Event LogをSpark SQLで調べてみた

Spark では、Spark UIというWEB画面が用意されており、実行中のSparkアプリケーションの稼働状況を確認することができます。このSpark UIを見ると、どのJOB、Stageがどの程度時間かかっていて、あとどれくらい残っているかとか、どれだけRDDがメモリを消費し…

GraphX Advent Calendar - Day 17 - 媒介中心性

GraphX Advent Calendar 2014 - Adventar 17日目です。 年が明けている気もしますが、気にしないでください。クラスタリングネタの続きです。前回は、クラスタリングの指標としてモジュラリティについて見てみました。今日からは具体的なクラスタリング手法…

私が GraphX を推す理由

この記事は、Spark, SQL on Hadoop etc. Advent Calendar 2014 - Qiitaの21日目の記事です。 なぜ GraphX を推すのか 私は、GraphX Advent Calendar 2014 - Adventarを立ち上げて「全部俺」状態で頑張っています(だいぶ遅延を見せていますが…)。もしやと思…

GraphX Advent Calendar - Day 16 - クラスタリング・モジュラリティ計算

GraphX Advent Calendar 2014 - Adventar 16日目です。 今日からはクラスタリングを見ていきますクラスタリングで一般的なのは K-means 法に代表される距離によって分類していくやり方ですが、グラフ分析では「密度」で計測します。辺による繋がりによる頂点…

GraphX Advent Calendar - Day 15 - 最短距離計測

GraphX Advent Calendar 2014 - Adventar 15日目です。 Pregel 活用例第3弾です。頂点と頂点との距離を計測する方法について見ていきます。 考え方 おなじみ、スライド解説です。 GraphX Advent Calendar Day15 from Teppei Tosa 実装 // 短い方􏰁距離を選定…

GraphX Advent Calendar - Day 14 - グラフ形状の評価 ~友達の輪を探せ~

GraphX Advent Calendar 2014 - Adventar 14日目です。 Pregel 活用例第2弾です。友達関係のグラフから、「友達の輪」つまり、ネットワークの流れが循環しているところを抽出する処理です。今回は指定ステップ以内で循環している頂点を探します。 考え方 今…

GraphX Advent Calendar - Day 13 - 指定階層内隣接頂点の検出 ~友達の友達の友達は誰?~

GraphX Advent Calendar 2014 - Adventar 13日目です。今日からは、昨日説明した Pregel を使った様々なアルゴリズムを見ていきたいと思います。まずは、指定階層内の隣接頂点の検出についてです。つまり、友達の友達の友達は誰(3次階層以内の隣接頂点)?…

GraphX Advent Calendar - Day 12 - Pregel 概要

GraphX Advent Calendar 2014 - Adventar 12日目です。ページランクアルゴリズムに予想以上に苦戦しているので、できるところから見ていきます ^^; 今日は Pregel です。 Pregel とは Pregel は Google が開発したグラフアルゴリズムを実装する ため…

GraphX Advent Calendar - Day 11 - 連結グラフの分類

GraphX Advent Calendar 2014 - Adventar 11日目です。今日はページランクアルゴリズム!と予告していたのですが、ちょっと時間がかかりそうなので、連結グラフの分類について、まずは取り掛かりたいと思います。 連結グラフ( Connected Graph ) 連結グラ…

GraphX Advent Calendar - Day 10 - 次数情報の計算と、隣接情報の収集

GraphX Advent Calendar 2014 - Adventar 10日目です。今日からは、グラフ処理っぽい処理を扱っていきます。 次数情報の計算 次数( degree )とは、頂点に接続している辺の数のことです。その頂点に接続してきている辺の数を入次数( in degree )、その頂…

GraphX Advent Calendar - Day 09 - グラフに対する編集処理

GraphX Advent Calendar 2014 - Adventar 9日目です。Day 06 から 08 にかけて、辺や頂点に対する編集処理を見てきましたが、今日は、グラフ全体に対する編集処理を見ていきたいと思います。 reverse とはいえ、これはEdgeRDD.reverse と変わりません。 各E…

GraphX Advent Calendar - Day 08 - EdgeRDD

GraphX Advent Calendar 2014 - Adventar 8日目です。一昨日説明した、VertexRDD と EdgeRDD について、昨日は VertexRDD の処理を紹介しましたが、今日は EdgeRDD です。 mapValues Day05 でも紹介した、それぞれの辺の編集処理を行うための関数です。 val…

GraphX Advent Calendar - Day 07 - VertexRDD

GraphX Advent Calendar 2014 - Adventar 7日目です。昨日は、VertexRDD と EdgeRDD の概要について書きました。今日はVertexRDDが持つ昨日をひとつずつ見て行きたいと思います。 filter 頂点を特定の条件で抽出するための関数です。 val filteredVertices:V…

GraphX Advent Calendar - Day 06 - VertexRDD と EdgeRDD とは

GraphX Advent Calendar 2014 - Adventar GraphX Advent Calendar 2014 - Adventar 6日目です。Day05 では、頂点の情報の編集や、辺の情報の編集方法を紹介しましたが、他にも頂点や辺の情報を扱う処理は、GraphXによって準備されています。それらの処理を持…

GraphX Advent Calendar - Day 05 - 頂点と辺と、そしてトリプレット

GraphX Advent Calendar 2014 - Adventar 5日目です。 Day04で生成したグラフデータを元に、色々な編集処理を見ていきましょう。 頂点の値を編集 頂点の値を編集するには、 mapVertices という関数を使います。 val graph2:Graph[Long, (Long, java.util.Dat…

GraphX Advent Calendar - Day 04 - 表構造データからグラフデータを生成する

GraphX Advent Calendar 2014 - Adventar 4日目です。Day03では、辺の構造のデータからグラフデータを生成しましたが、今日は、普通の表構造のデータからグラフデータを生成してみます。 読み込み時に複雑なデータモデルから読み込み GraphLoader.edgeListF…

GraphX Advent Calendar - Day 03 - グラフの頂点情報を編集する

GraphX Advent Calendar 三日目です。今日から何回かにかけて、GraphX でグラフにどのように情報を持たせるか、グラフに持たせた情報をどう編集するのかを説明します。 辺情報から生成したグラフ情報に頂点情報を追加する 昨日も説明した通り、最も簡単なグ…

GraphX Advent Calendar - Day 02 - GraphX はじめの一歩

GraphX Advent Calendar二日目です。今日は GraphX をひとまず始めるにあたっての手順をまとめてみます。 はじめの一歩 まずは 以下のように依存性を解決します。project/GraphXAdventSamplesBuild.scala import sbt._ import sbt.Keys._ object GraphXAdven…

GraphX Advent Calendar - Day 01 - GraphX とは

はじまりました、 GraphX Advent Calendar 。予想通り、今のところ私一人しかエントリーしてませんね。このまま25日間一人で完走することも厭わない所存でございます。まず1日目は、GraphX の紹介しておきます。 GraphX とは GraphX は、Apache Sparkのコン…