AI資格ドリル
資格を選ぶ

用語比較

HadoopとSparkの違い|保存と処理の基盤か、処理エンジンか(DS検定)

HadoopとSparkは同じ役割の競合品ではなく、Hadoopはデータを保存する部分(HDFS)と処理する部分(MapReduce)を含む基盤で、Sparkは処理を担うエンジンです。Sparkの保存の仕組みは、別のものと組み合わせて使います。

Hadoopは保存と処理をまとめた基盤、Sparkは処理を速く回すエンジンと区別するのが出発点です。Sparkは、Hadoop MapReduceの制約を受けて作られました。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

HadoopとSparkの要点

Hadoop

大量データの分散保存と分散処理のためのオープンソースの部品群。保存はHDFS、処理はMapReduce、資源の管理はYARNが担う。

Spark

分散処理のエンジン。処理の途中結果を扱う仕組み(RDD)が土台で、保存の仕組みは別に必要。HDFSやAmazon S3などと組み合わせて使う。

違いを表で確認

比較軸HadoopSpark
役割分散保存(HDFS)と分散処理(MapReduce)を含む基盤分散処理のエンジン。保存と資源の管理は別の仕組みに任せる
処理の進め方MapReduceは入力をディスクから読み、処理結果をディスクへ書く直線的な流れRDDを作業用のデータとして使い、同じデータを何度も読む処理に向く
データの置き場所HDFSに保存するHDFS、Amazon S3、Cassandraなど、さまざまな保存先とつなげる
向く用途大量データを分けて保存し、まとめて処理する繰り返し処理(機械学習の学習など)や、同じデータへの何度もの問い合わせ
両者の関係Hadoopの周辺ソフトの一つとして、Sparkが挙げられる資源管理にHadoop YARN、保存にHDFSを使える

どこで迷っているかを切り分ける

01

HadoopとSparkを、どちらかを選ぶ競合だと思っている人

役割が違います。HadoopのHDFSにデータを置き、その上でSparkが処理する組み合わせも使われます。比べるときは、Hadoop MapReduceとSparkの処理方式を比べるのが正確です。

02

MapReduceとSparkの処理の違いを説明できない人

MapReduceは入力をディスクから読み、結果をディスクに保存する流れです。Sparkは、RDDという作業用のデータを使い、同じデータを繰り返し使う処理で待ち時間を短くできます。

03

試験で、どのデータをどちらで管理すべきかを問われて迷う人

チェックリストはメリット・デメリットを理解して選定することを求めています。大量のデータを保存する場面ならHDFS、繰り返し処理を速く回したい場面ならSparkと、役割から考えます。

具体例で使い分ける

例 1

大量のログを分けて保存し、まとめて集計したい場合

複数のコンピュータで、大量のログファイルを保存し、集計したい場面です。

  • 保存と処理の両方が必要です。Hadoopは、ファイルを大きなブロックに分けて各ノードに置き、コードをノードへ送って並列に処理します。
  • データのあるノードで処理するため、データの移動を減らせます。

結論: 保存と処理をまとめて任せたいなら、Hadoopを考えます。

例 2

機械学習の学習で、同じデータを何度も読む場合

同じデータセットを繰り返し読んで、モデルを学習したい場面です。

  • 同じデータを何度も読む処理です。毎回ディスクに書いて読み直す流れは、待ち時間が長くなります。
  • Sparkは、RDDを作業用のデータとして使い、繰り返し処理の待ち時間を大きく下げられると説明されています。機械学習の学習が、Spark開発のきっかけでもあります。

結論: 同じデータを繰り返し使う処理は、Sparkに向きます。

問題文から答えを選ぶ手順

  1. 1

    保存の話か、処理の話かを分ける

    保存の仕組みはHDFS、処理の仕組みはMapReduceやSparkです。問われているのがどちらかを先に切り分けます。

  2. 2

    処理の方式を確かめる

    入力と結果をディスクに読み書きする直線的な流れはMapReduce、作業用のデータを使い回す処理はSparkです。

  3. 3

    繰り返し処理があるかを見る

    機械学習の学習や、同じデータへの何度もの問い合わせは、Sparkが向く場面です。

  4. 4

    組み合わせを考える

    Sparkは保存の仕組みを持たないため、HDFSなどと組み合わせます。資源の管理にはYARNを使えます。

試験での見分け方

  • 1Hadoopは、分散保存(HDFS)と分散処理(MapReduce)を含む基盤である。
  • 2Sparkは分散処理のエンジンで、保存と資源の管理は別の仕組みを必要とする。
  • 3SparkはHadoopのHDFSやYARNの上でも動く。両者は組み合わせて使える。

誤答しやすい選択肢

SparkはHadoopを置き換えるもので、同時には使えないと考える

修正: SparkはHDFSに保存したデータを読めて、資源の管理にHadoop YARNも使えます。組み合わせて使えます。

Hadoopを、処理の仕組みだけだと考える

修正: Hadoopの中心は、保存のHDFSと、処理のMapReduceの2つです。保存の部分も含みます。

Sparkが保存先まで用意すると考える

修正: Sparkは分散保存の仕組みを必要とします。HDFS、Amazon S3、Cassandraなどにつないで使います。

確認問題

Q1Hadoopの、分散ファイルシステムの名前は何ですか?

答え: HDFS(Hadoop Distributed File System)

ファイルを大きなブロックに分けて、クラスターの各ノードに置きます。

Q2入力をディスクから読み、結果をディスクに保存する直線的な流れの処理モデルは何ですか?

答え: MapReduce

Sparkは、この制約への対応として作られました。

Q3Sparkの土台になる、クラスターに分散した読み取り専用のデータの集まりは何ですか?

答え: RDD(Resilient Distributed Dataset)

障害に強い形で保持され、繰り返し処理の待ち時間を下げる役割を持ちます。

到達チェック

  • HadoopとSparkの役割の違いを言える
  • HDFS、MapReduce、YARNの役割を言える
  • MapReduceとSparkの処理の流れの違いを説明できる
  • Sparkが保存の仕組みを別に必要とする理由を言える

同じ資格で次に知りたいこと

よくある質問

QHadoopとSparkの一番大きな違いは何ですか?

A

役割です。Hadoopは、分散保存のHDFSと分散処理のMapReduceを含む基盤です。Sparkは分散処理のエンジンで、保存の仕組みは別のものと組み合わせます。

QSparkはHadoopなしで使えますか?

A

使えます。Wikipediaによると、Sparkは資源の管理にSpark単体、Hadoop YARN、Apache Mesos、Kubernetesを選べ、保存先もHDFS、Amazon S3、Cassandraなど複数から選べます。

QSparkはMapReduceより速いのですか?

A

Wikipediaは、繰り返し処理や、同じデータへの何度もの問い合わせの待ち時間を、Hadoop MapReduceの実装に比べて桁違いに下げられると説明しています。処理の種類によって差は変わります。

QDS検定にHadoopとSparkは出ますか?

A

データサイエンティスト協会のスキルチェックリストに、HadoopやSparkのメリット・デメリットを理解し、管理すべきデータを選定できること(★★2つ星)が含まれます。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)