Hadoopはどのように動くのか ─並列・分散システム技術から読み解くHadoop処理系の設計と実装
第20回 Sparkの設計と実装[1]~登場の背景とデータ処理の特徴
はじめに
今回から2回に渡って,
Sparkが登場した背景
Sparkは,
Hadoop MapReduceは,
1.複雑なデータ処理を行うために, 複数のジョブを連ねて実行する場合
Hadoop MapReduceのジョブは,
2.同じデータを複数のジョブから利用する場合
Hadoop MapReduceは,
このほか,
このようなデータ処理の高速性を低下させる問題を回避するための解決策としては,
Sparkの抽象データ構造の利点
Sparkでは,
Sparkには,
1.並列データ処理をシンプルに記述できる
アプリケーション開発者は,
2.汎用的な並列データ処理系として利用できる
事前に定義されているRDDに対する数十種類のオペレータにより,
RDDは汎用的な分散コレクションとして見ることができるため,
また,
複雑なデータ処理を効率的に行うためのデータ処理モデル
Sparkでは,
計算機上でのRDDの処理
Sparkでは,
1. RDDのパーティション (図1 「タスクの境界 (1)」)
タスクに含まれるオペレータのインスタンスは,
2.集約処理を始めとするパーティションをまたいだデータシャッフル処理 (図1 「タスクの境界 (2)」)
1つのタスクには,
- ※1)
- エグゼキュータには,
同じRDDの異なるパーティションに対するタスクが2回以上割り当てられる場合があります。その場合でもタスクを効率的に実行できるよう, 実際の実装においてはタスクにはオペレータの命令列そのものは含まれておらず, 命令列への参照と, オペレータを適用すべきパーティションのインデックスが含まれています。命令列は, ジョブ実行のタイミングで, 一度だけエグゼキュータにコピーされます。
おわりに
今回は,
- 関連文献
[1] Yingyi Bu, Bill Howe, Magdalena Balazinska, Michael D. Ernst, “HaLoop: Efficient Iterative Data Processing on Large Clusters” [2] Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and Grzegorz Czajkowski, “Pregel: A System for Large-Scale Graph Processing” [3] Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma,Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica, “Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing “
バックナンバー
Hadoopはどのように動くのか ─並列・分散システム技術から読み解くHadoop処理系の設計と実装
- 第20回 Sparkの設計と実装[1]~登場の背景とデータ処理の特徴
- 第19回 Impalaの設計と実装[3]
- 第18回 Impalaの設計と実装[2]
- 第17回 Impalaの設計と実装[1]
- 第16回 並列データ処理系 Apache Tez
- 第15回 計算機クラスタのためのリソース管理基盤 Hadoop YARN
- 第14回 Hadoopの設計と実装~並列データ処理フレームワークHadoop MapReduce[2]
- 第13回 Hadoopの設計と実装~並列データ処理系Hadoop MapReduce[1]
- 第12回 複数のプロセスにおける協調動作のための仕組み─コーディネーション
- 第11回 耐障害性のための仕組み─レプリケーションとロギング