マナビング基本情報技術者

分散ファイルシステムと分散処理をどう見分けるか

基本情報技術者試験 平成30年度春期 午前 問20 / ソフトウェア › オープンソースソフトウェア

過去問にチャレンジ

平成30年度春期 午前 問20

多数のサーバで構成された大規模な分散ファイルシステム機能を提供し,MapReduceによる大規模データの分散処理を実現するOSSはどれか。

  1. ア

    Apache Hadoop

  2. イ

    Apache Kafka

  3. ウ

    Apache Spark

  4. エ

    Apache Storm

会話形式の解説

講師講師
この問題では、データを分散して保存する機能と、MapReduceで分散して処理する機能の両方を確認します。
受験者受験者
Apache Sparkも大量のデータを分散して処理できます。これだけでは選べないのですね。
講師講師
はい。Spark自体は、問題文にある分散ファイルシステムを提供しません。保存の条件も確かめる必要があります。
受験者受験者
保存と処理の両方を備えるのがApache Hadoopですか。
講師講師
そうです。HadoopはHDFSでデータを複数のサーバに分散して保存し、MapReduceで処理も分散して実行できます。
受験者受験者
Apache Kafkaは、データを分散して保存する仕組みなのでしょうか。
講師講師
Kafkaの主な役割は、システム間でデータをやり取りする分散メッセージングです。この問題で求める保存と処理の組合せには当たりません。
受験者受験者
Apache Stormは分散して処理しますが、MapReduceによる処理とは違うのですか。
講師講師
Stormは次々に届くデータの分散処理に使われます。分散ファイルシステムとMapReduceの組合せには該当しません。
受験者受験者
分散処理という共通点だけで判断せず、保存の機能と処理の方式を一つずつ確認するのですね。
講師講師
そのとおりです。データを運ぶ仕組み、分散して保存する仕組み、分散して処理する仕組みを区別すると判断しやすくなります。

まとめ

正解はApache Hadoopです。HDFSでデータを複数のサーバに分散して保存し、MapReduceで処理も分散して実行できます。Apache SparkとApache Stormは分散処理に関係しますが、問題文の機能の組合せには当たりません。Apache Kafkaの主な役割は、システム間の分散メッセージングです。

解答・解説

正解はアです

この問題のテーマ

分散ファイルシステムによるデータ保存と、MapReduceによる分散処理を備えるOSSを識別する問題です。

解き方の考え方

問題文にある「分散ファイルシステム」と「MapReduce」の両方を手掛かりにします。各選択肢の主な役割を確かめ、二つの条件を満たすものを選びます。

選択肢ごとの解説

  1. ○ア  Apache Hadoop
    Apache Hadoopは、HDFSでデータを複数のサーバに分散して保存できます。また、MapReduceによって処理も分散して実行できます。問題文の二つの条件に合うため、正解です。
  2. ×イ  Apache Kafka
    Apache Kafkaの主な役割は、システム間でデータをやり取りするための分散メッセージングです。問題文が求める、分散ファイルシステムとMapReduceを備えたOSSには当たりません。
  3. ×ウ  Apache Spark
    Apache Sparkは、大量のデータを分散して処理するエンジンです。処理を分散できる点は似ていますが、Spark自体は問題文にある分散ファイルシステムを提供しません。
  4. ×エ  Apache Storm
    Apache Stormは、次々に届くデータを分散して処理するために使われます。問題文が示す分散ファイルシステムとMapReduceの組合せには該当しません。

POINT

  • OSSを識別するときは、製品名だけでなく、問題文に示された機能の組合せを確認します。
  • データを分散して保存する機能と、データを分散して処理する機能は区別します。
  • データを運ぶ仕組みと、保存・処理を担う仕組みも区別します。

※出典:平成30年度春期 基本情報技術者試験 午前 問20