SAシステムアーキテクト試験 午前Ⅱ

平成27年度秋期 システムアーキテクト 午前Ⅱ 問6

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

大量のデータを並列に処理するために,入力データから中間キーと値の組みを生成する処理と,同じ中間キーをもつ値を加工する処理との 2段階で実行するプログラミングモデルはどれか。

選択肢

  1. ア
    2相コミット
  2. イ
    KVS
  3. ウ
    MapReduce
  4. エ
    マルチスレッド
解き方のヒントを見る

用語が担う役割を見極める視点

大規模データの分散処理に関連する用語は数多く、似た文脈で登場しても担う役割はそれぞれ異なります。問われている対象の性質を問題文から正確に読み取り、各用語が本来何を定義する概念なのかを自分の知識で整理してから照らし合わせることが大切です。

この問題で問われていること

この問題で確認したいのは、プログラミングモデルという言葉が指す範囲です。ある用語が処理の手順をどう記述するかの枠組みなのか、それとも別の階層の仕組みを指す名称なのかを区別して考える力が問われています。

視点

プログラミングモデルとは、開発者が処理をどのような考え方や形式で記述するかを定めた枠組みを指します。一方、分散処理の分野では、ソフトウェアの名称、データ管理の仕組み、処理方式の呼び名などが同じ文脈で語られることが多く、混同しやすい傾向があります。用語を学ぶ際は名称だけを覚えるのではなく、『それが何を決めているのか』を一文で説明できるかを確かめると、概念どうしの位置付けが整理しやすくなります。

確認ポイント

  • 登場する各用語について、それが何を定める概念なのかを自分の言葉で一文にして説明できるか
  • 問題文が求めている対象が、処理を記述する枠組みなのか、それとも別の階層の仕組みなのかを読み取れているか
  • 名称の響きや同じ文脈でよく見かけるという印象だけで判断していないか
正解と解説を見る

正解

ウ

解説

入力データから中間的なキーと値の組を生成し、同じキーをもつ値をまとめて処理する二段階のプログラミングモデルはMapReduceです。

理由

MapReduceは、入力データを処理して中間キーと値の組を生成するMap処理と、同じ中間キーに対応する値を処理するReduce処理の二段階で構成される。設問の説明と一致する。

比較

2相コミットは分散トランザクションの確定手順、KVSはキーと値でデータを管理する方式、マルチスレッドは複数の処理単位を並行実行する仕組みであり、設問の二段階モデルそのものではありません。

選択肢ア

これは不正解だよ。2相コミットは、分散した処理主体に対してトランザクションを確定するか取り消すかを調整する手順である。入力から中間キーと値を生成し、同じキーの値を加工する大量データ処理モデルを表していない。

選択肢イ

これは不正解だよ。KVSは、キーとそれに対応する値を組にして保存・検索するデータ管理方式である。設問が示すような、入力データの変換処理とキー単位の後続処理から成る二段階の並列処理モデルとは異なる。

選択肢ウ(正解)

これは正解だよ。MapReduceは、Map処理で入力データから中間キーと値の組を生成し、Reduce処理で同じ中間キーをもつ値をまとめて加工する。設問の二段階構成と大量データの並列処理という説明に一致する。

選択肢エ

これは不正解だよ。マルチスレッドは、プログラム内で複数のスレッドを用いて処理を並行実行する仕組みである。中間キーと値の組を生成し、同じキーごとに値を加工するという固有の二段階モデルを指す用語ではない。

学習のポイント

Map処理とReduce処理の役割を対応付けて理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成27年度秋期 システムアーキテクト試験 午前Ⅱ 問6(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針