Sparkの研究
Apache Sparkは、ビッグデータ分析に焦点を当てたAMPLabのUCバークレーにおける研究プロジェクトとして始まりました。
私たちの目標は、MapReduceの自動フォールトトレランスを維持しながら、より幅広いクラスのアプリケーションをサポートするプログラミングモデルを設計することでした。特に、MapReduceは、複数の並列操作間で低レイテンシーのデータ共有を必要とするマルチパスアプリケーションには非効率的です。これらのアプリケーションは分析で非常に一般的であり、以下が含まれます。
- PageRankのような多くの機械学習アルゴリズムやグラフアルゴリズムを含む反復アルゴリズム。
- ユーザーがクラスター全体でRAMにデータをロードし、繰り返しクエリを実行したいインタラクティブなデータマイニング。
- 時間経過に伴う集計状態を維持するストリーミングアプリケーション。
従来のMapReduceおよびDAGエンジンは、非循環データフローに基づいているため、これらのアプリケーションには最適ではありません。アプリケーションは、それぞれが安定したストレージ(分散ファイルシステムなど)からデータを読み取り、安定したストレージに書き戻す一連の個別のジョブとして実行する必要があります。各ステップでデータをロードし、レプリケートされたストレージに書き戻すには、かなりのコストがかかります。
Sparkは、これらのアプリケーションを効率的にサポートするために、Resilient Distributed Datasets (RDD)と呼ばれる抽象化を提供します。RDDは、レプリケーションを必要とせずに、クエリ間でメモリに保存できます。代わりに、リネージを使用して、障害時に失われたデータを再構築します。各RDDは、自分自身を再構築するために、他のデータセットから(map
、join
、groupBy
などの変換によって)どのように構築されたかを記憶します。RDDにより、Sparkはマルチパス分析で既存のモデルよりも最大100倍のパフォーマンスを発揮できます。RDDが、インタラクティブなデータマイニングだけでなく、幅広い反復アルゴリズムと非常に効率的なSQLエンジン(Shark)をサポートできることを示しました。
Sparkの背後にある研究の詳細については、次の論文をご覧ください。
-
SparkR: Scaling R Programs with Spark, Shivaram Venkataraman, Zongheng Yang, Davies Liu, Eric Liang, Hossein Falaki, Xiangrui Meng, Reynold Xin, Ali Ghodsi, Michael Franklin, Ion Stoica, and Matei Zaharia. SIGMOD 2016. June 2016.
-
MLlib: Machine Learning in Apache Spark, Xiangrui Meng, Joseph Bradley, Burak Yavuz, Evan Sparks, Shivaram Venkataraman, Davies Liu, Jeremy Freeman, DB Tsai, Manish Amde, Sean Owen, Doris Xin, Reynold Xin, Michael J. Franklin, Reza Zadeh, Matei Zaharia, and Ameet Talwalkar. Journal of Machine Learning Research (JMLR). 2016.
-
Spark SQL: Relational Data Processing in Spark. Michael Armbrust, Reynold S. Xin, Cheng Lian, Yin Huai, Davies Liu, Joseph K. Bradley, Xiangrui Meng, Tomer Kaftan, Michael J. Franklin, Ali Ghodsi, Matei Zaharia. SIGMOD 2015. June 2015.
-
GraphX: Unifying Data-Parallel and Graph-Parallel Analytics. Reynold S. Xin, Daniel Crankshaw, Ankur Dave, Joseph E. Gonzalez, Michael J. Franklin, Ion Stoica. OSDI 2014. October 2014.
-
Discretized Streams: Fault-Tolerant Streaming Computation at Scale. Matei Zaharia, Tathagata Das, Haoyuan Li, Timothy Hunter, Scott Shenker, Ion Stoica. SOSP 2013. November 2013.
-
Shark: SQL and Rich Analytics at Scale. Reynold S. Xin, Joshua Rosen, Matei Zaharia, Michael J. Franklin, Scott Shenker, Ion Stoica. SIGMOD 2013. June 2013.
-
Discretized Streams: An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters. Matei Zaharia, Tathagata Das, Haoyuan Li, Scott Shenker, Ion Stoica. HotCloud 2012. June 2012.
-
Shark: Fast Data Analysis Using Coarse-grained Distributed Memory (demo). Cliff Engle, Antonio Lupher, Reynold S. Xin, Matei Zaharia, Haoyuan Li, Scott Shenker, Ion Stoica. SIGMOD 2012. May 2012. Best Demo Award.
-
Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing. Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica. NSDI 2012. April 2012. Best Paper Award.
-
Spark: Cluster Computing with Working Sets. Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin, Scott Shenker, Ion Stoica. HotCloud 2010. June 2010.