システムアーキテクト試験 2015年 午前206


大量のデータを並列に処理するために、入力データから中間キーと値の組みを生成する処理と、同じ中間キーをもつ値を加工する処理との2段階で実行するプログラミングモデルはどれか。
マルチスレッド
2相コミット
KVS
MapReduce(正解)

解説

大量データの並列処理モデルに関する問題【午前2 解説】

要点まとめ

  • 結論:大量データの並列処理で中間キーと値の組みを生成し、同じキーの値を加工する2段階処理はMapReduceである。
  • 根拠:MapReduceは「Mapフェーズ」でデータをキー・値のペアに変換し、「Reduceフェーズ」で同じキーの値を集約・加工するモデルだからである。
  • 差がつくポイント:2相コミットは分散トランザクションの整合性確保、KVSは単純なキー・バリュー格納、マルチスレッドは並列処理の手法であり、問題の2段階処理モデルとは異なる点を理解すること。

正解の理由

選択肢の中で、MapReduceは大量データを並列処理するために設計されたプログラミングモデルです。Mapフェーズで入力データを中間キーと値のペアに変換し、Reduceフェーズで同じキーを持つ値をまとめて処理します。この2段階の処理構造が問題文の説明と完全に一致します。したがって、ウ: MapReduceが正解です。

よくある誤解

2相コミットは分散システムのトランザクション制御であり、データ処理モデルではありません。KVSは単純なデータ格納方式で、処理の流れを示すものではありません。

解法ステップ

  1. 問題文の「2段階で実行するプログラミングモデル」に注目する。
  2. 「入力データから中間キーと値の組みを生成」と「同じ中間キーをもつ値を加工」の2段階処理を理解する。
  3. 選択肢の意味を整理し、MapReduceがこの2段階処理モデルであることを確認する。
  4. 他の選択肢が分散トランザクションや単純なデータ格納、単なる並列処理手法であることを排除する。

選択肢別の誤答解説

  • ア: 2相コミット
    分散トランザクションの整合性を保証するプロトコルであり、データ処理の2段階モデルとは異なる。
  • イ: KVS
    キー・バリュー形式のデータストアで、処理の流れや段階を示すものではない。
  • ウ: MapReduce
    入力データをMapフェーズでキー・値ペアに変換し、Reduceフェーズで同じキーの値を集約・加工する2段階処理モデル。
  • エ: マルチスレッド
    並列処理の手法の一つであるが、特定の2段階処理モデルを指すものではない。

補足コラム

MapReduceはGoogleが提唱した分散処理モデルで、Hadoopなどのビッグデータ処理基盤の基礎となっています。Mapフェーズでデータを分割・変換し、Reduceフェーズで集約・分析を行うため、大量データの効率的な処理に適しています。

FAQ

Q: MapReduceの「Map」と「Reduce」は具体的に何をする処理ですか?
A: Mapは入力データをキー・値のペアに変換し、Reduceは同じキーを持つ値を集約・加工する処理です。
Q: 2相コミットはどのような場面で使われますか?
A: 分散システムで複数のデータベースにまたがるトランザクションの整合性を保証するために使われます。

関連キーワード: MapReduce, 並列処理, 分散処理, キー・バリュー, ビッグデータ, Hadoop, 2相コミット, マルチスレッド, KVS
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ