.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Hadoop MapReduce?と同様に

  • 複数の計算機を用いてデータ処理を行う並列データ処理系
  • クラスタ・コンピューティングのOSSフレームワーク
    • 暗黙のデータ並列性と耐故障性を備えたクラスタ全体をプログラミングできる。
    • Resilient Distributed Dataset (RDD)と呼ばれるデータ構造を処理するAPIを持つ。

背景

Hadoop MapReduce?が適合しない以下のケースをサポートする。

  • 複雑なデータ処理を行うために,複数のジョブを連ねて実行する場合
  • 同じデータを複数のジョブから利用する場合

利点

汎用的な並列データ処理系として利用できる。

  • RDDに対する数十種類のオペレータを利用可能。
    • 多様な並列データ処理をシンプルに記述できる。
    • オペレータを組み合わせれば、ジョブを組み合わせる必要がない。
    • 複数のオペレータは1つのタスクとしてRDDのパーテョションごとにコピーされる。
    • パーティション並列性を活用でき、中間データI/Oを削減できる。

詳細

コンポーネント

Resilient Distributed Dataset (RDD)

  • 分散共有メモリを提供する分散プログラムのワーキングセット。
  • 永続化先として、主に、計算機のメモリ(キャッシュ)と二次記憶を利用できる。
  • メモリと二次記憶を組み合わせることも可能
    • メモリに保持しきれないパーティションを一時的に二次記憶に退避
    • 当該パーティションを利用する際に再び二次記憶から読み出す。

Spark Core

  • プロジェクト全体の基盤
  • RDD抽象化した各種の実装
  • API(Java、Python、Scala、R)を介して公開
    • 分散タスクディスパッチ
    • スケジューリング
    • および基本I/O機能

Spark SQL

  • 提供
    • DataFrames?というデータ抽象化
      • テーブルのようなデータ構造をもった分散処理用データセット
      • テーブル構造なのでSQLライクにデータを操作できる。
      • RDDではなくDataFrame?が主流になって行く。
  • ドメイン固有言語(DSL) > SQL言語
    • CLI、JDBC / ODBCサポートを実装している。
    • Scala、Java、PythonからDataFrames?を操作できる。
  • 強く型付けされたデータセットも完全にサポート

その他、用途向けのライブラリ

  • グラフ処理
    GraphX
  • 機械学習
    MLlib Machine Learning Library

耐障害性

≒ 再実行するタスクの数を最少にする機構。

ジョブ

物理ロギングに依る。

  • 中間データをシャッフルする際に、
  • 中間データを二時記憶に書き出す。

※ シャッフル:ネットワーク越しのデータ転送を伴うデータの再分散。

RDD

以下の2つの方法に依る。

分散処理 > 目的別

分散(バッチ)系

ストリーム系

参考

gihyo.jp … 技術評論社

Hadoopはどのように動くのか
─並列・分散システム技術から読み解くHadoop処理系の設計と実装


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-10-27 (火) 16:30:43 (2d)