AMP Campをひと通りさらってみる:第2回 Data Exploration Using Spark

Data Exploration Using Sparkのメモ

  • http://localhost:4040 で管理ツールが確認できる
  • 2列目が言語を表しているのでそれを抽出したいという例でcacheを使う
  • reduceByKeyの第2引数はreducerの数
  • collectメソッドRDDをArrayに変換している

動画のメモ


AMP Camp 5: SparkSQL - Michael Armbrust - YouTube

  • どちらかというとSparkSQL押しな内容
  • schemaRDDの話
  • SparkSQLは1.2からHive/Json/Panquetなどにも対応。これはけっこう良さそう
  • カラム指向でメモリ上にスキーマを保持

Spark Programming Guideのメモ

  • Sparkアプリケーションはdriver programから構成され、ユーザーのmain関数といくつかのparallel operatorを実行する
  • クラスターのノード上で並行処理ができる分割された要素のコレクションであるRDD(Resilient Distributed Dataset)
    • 再利用を目的としてメモリ上にRDDを保持させることができる
  • 並列処理時に利用されるshared variables
    • デフォルトでは、Sparkは異なるノードの一連のタスクとして並列に関数を動かした時、関数内で利用される各変数のコピーを各タスクに送る
  • Sparkがサポートするshared variables
    • broadcast variables:全てのノード上のメモリに値をキャッシュさせるために利用される変数
    • accumulators:カウンターや合計のように単純に"足し合わせる"ための変数

Linking With Spark

  • Mavenの設定が必要
    • HDFSつかうときは追加でMavenの登録が必要

Initializing Spark

  • 初めにすべきことはSparkContextオブジェクトを作成すること
    • SparkContextはクラスターにどのようにデータにアクセスするかを教える
  • SparkContextオブジェクトを作成するに辺り、アプリケーションの情報を含んだSparkConfオブジェクトを作成する
  • JVM毎に1つのSparkContextがアクティブにできる
    • 新しいSparkContextを作りたければstop()を行わなければならない
  • setAppNameにはClusterUI上に表示するアプリケーション名を渡す
  • setMasterにはここの値を色々入れる。とりあえずlocal

Using the Shell

  • 起動時にscという特別なSparkContextオブジェクトが作られている

RDD

  • RDDここでかなり分量を使って書かれているので、また後でしっかり見てみます。

その他

  • standaloneでのプログラムの書き方なども学びましょうということで第一回のAMP Campの資料が参照されている

やっぱりRDDがポイントそうですね。