はじめに Apache Sparkは多目的かつ高速なクラウドコンピューティングシステムです。Javaをはじめ、ScalaとPythonから利用可能なAPIが提供されています。 また、Apache SparkにストアされたデータはSQLから参照できるようにもなっています。さらに、「MLlib」と呼ばれる機械学習機能、「GraphX」と呼ばれるグラフデータ機能や「Spark Streaming」と呼ばれるリアルタイム処理の仕組みも提供します。 何故高速なのか Apache Sparkはインメモリでの動作を前提に設計されています。 インメモリの場合、データの喪失の危険性がつきまといますが、その問題をカバーしているのがRDDs(Resilient Distributed Datasets)と呼ばれるアルゴリズムです。 RDDsはインメモリデータに対するフォールトトレラントな仕組みを提供して